बड़ी, उच्च लोड परियोजना पर काम करना मुझे समस्या मिली है जो मंचों और ब्लॉग पर अरबों विषयों में पहले ही वर्णित है, लेकिन मेरे पास कोई समाधान नहीं है जो मेरे मामले में मदद करेगा। कहानी यहाँ है।बाहरी जेएस फ़ाइल में जावास्क्रिप्ट दस्तावेज़.write
मेरे पास बैनर का HTML कोड है, मुझे नहीं पता कि कोड क्या है। कभी-कभी यह सादा HTML है, लेकिन कभी-कभी <script>
टैग के साथ document.write के साथ <script>
टैग के साथ टैग है जिसमें उसमें नेटवर्क को डबलक्लिक करने के लिए src है।
तो हमारे पास है: script> document.write> script (doubleclick)।
डबलक्लिक नेटवर्क, जैसा कि आप जानते हैं, दस्तावेज़.write का भी उपयोग करें और अधिकांश समय वे फ्लैश बैनर देते हैं जिन्हें एक और जेएस फ़ाइल लोड करने की आवश्यकता होती है।
तो सब के बाद हमने: script> दस्तावेज़.लिखें> लिपि (DoubleClick)> दस्तावेज़.लिखें> script> ...
यह अच्छा काम करता है जब आप सीधे HTML में रखें। पृष्ठ प्रतिपादन 1 भाग, लोड बैनर 1, प्रतिपादन पृष्ठ रखें, बैनर 2 लोड करें, पृष्ठ प्रतिपादन को अंतिम रूप दें।
लेकिन अभी मुझे उस पृष्ठ बैनर के बाद पहले पृष्ठ प्रस्तुत करना होगा। बैनर document.write का उपयोग करते जैसा कि मैंने पहले window.onload घटना इसे लोड करने की आवश्यकता है (ध्यान दें: के बाद window.onload दस्तावेज़.लिखें पूरे दस्तावेज़ को फिर से लिखने होंगे।)
मैंने क्या किया है:
सिर में खंड में मेरे पास एक बैनर ऑब्जेक्ट है (असली नामस्थान विशाल :) :), संपत्ति के दायरे के साथ।
पृष्ठ प्रतिपादन और बैनर कोड से मिलने मैं गुंजाइश में बैनर के कोड डालते हैं और <div id="bannerPlaceHolder"+id></div>
डाल है जब - तो यहाँ मैं पर
पृष्ठ प्रदान की गई और </body>
टैग मैं डाल से पहले बाद में बैनर सामग्री डाल करने की आवश्यकता होगी <script>banners.load()</script>
banners.load विधि गुंजाइश सरणी में प्रत्येक आइटम के लिए ऐसा करते हैं:
document.write('<div id="codeHolder'+id+'">');
document.write(bannerCode);
document.write('</div>');
और इस के बाद ही मैं window.onload()
घटना है कि ऐसा करते हैं:
ले सभी बैनर ग odeHolders और node-by-node इसे कोड से नोड्स को जोड़ने के लिए होल्डर होल्डर, इसलिए परिणामस्वरूप मैंने पृष्ठ को प्रस्तुत करने के बाद बैनर लोड किए हैं और बैनर सही जगह पर हैं।
आईई को छोड़कर सभी सही है, यह किसी भी जेएस स्क्रिप्ट को लोड करता है जो डीओएम में गतिशील रूप से एसिंक्रोन तरीके से लगाया जाता है, इसलिए डबलक्लिक स्क्रिप्ट के अंदर document.write दस्तावेज़ के अंत में नोड्स संलग्न करता है और मेरे कोडहोल्डर नोड्स में नहीं। हमेशा के रूप में यह केवल आईई में है।
मुझे वास्तव में किसी भी व्यक्ति की सराहना की जाएगी जो समाधान को जान सके।
innerHTML <'script> टैग में कोड निष्पादित नहीं करता है गतिशील रूप से मैं html कोड आता है कि –
नियंत्रित नहीं किया जा सकता है टैग के बीच और गतिशील रूप से पिछली टिप्पणी में नई लाइन होना चाहिए के रूप में स्क्रिप्ट नहीं बना सकते –