javascript - What Event should I register on DOM Update with Internet Explorer -
पृष्ठभूमि मैं एक बुकमार्कलेट विकसित कर रहा हूं जिस पर निर्भरता 3 मेरी पुस्तकालय स्क्रिप्ट चलने से पहले पार्टी पुस्तकालयों को डीओएम में लोड किया जा सकता है। मुझे जो समस्या हो रही है, वह यह निर्भरता श्रृंखला है जिसे मुझे प्रतिक्रिया देने से पहले इंतजार करना पड़ता है, और मुझे इसे IE में उड़ान भरने में समस्याएं आ रही हैं। मुझे यकीन नहीं हो सकता कि JQuery यहां तक कि इस स्तर पर पेज पर। यह कुछ है जो मैं जांचता हूं, और यदि वह वहां नहीं है, तो मुझे इसे DOM में बनाना और इंजेक्शन करना होगा। नियंत्रण का प्रवाह ऐसा कुछ है: कॉलबैक फ़ंक्शन सेट करें यह काम करता है, और यह अच्छी तरह से काम करता है। मैं श्रृंखला jquery, कुछ jquery प्लगइन्स, तो मेरे कोड, और फिर मुझे यकीन है कि जब मेरा कोड (असली ब्राउज़र भूमि में) चला सकते हैं कि यह चलेंगे कर सकते हैं। समस्या की जड़ जब आईई & gt; 9 (जिसे हमें समर्थन करना होगा) में एक समान फ़ंक्शन है ... बात समान है, लेकिन सही ढंग से आग लगने पर दिखाई नहीं देता डोम तत्व अपडेट होते हैं आईओ 7 + आग क्या है जब डीओएम अद्यतन किया जाता है? मैंने कुछ स्रोतों को पढ़ने के बाद इसे समझ लिया है। यह थोड़ा सृजनात्मक जावास्क्रिप्ट जादू की मांग करता है। हम जिन घटनाओं में दिलचस्पी रखते हैं, वे हैं, onstatechange, and onload। जब आप पृष्ठ में सम्मिलित करते हैं, तो आप उन्हें अपडेट नोटिफिकेशन ट्रिगर करने के लिए एक कस्टम फ़ंक्शन जोड़ सकते हैं। मैंने इसे एक फ़ंक्शन में समतल कर दिया है, जहां, यदि आप इसे एक तत्व और कॉलबैक स्टेटमेंट पास करते हैं, पेज बॉडी के अंत में तत्व को डंप कर और कॉलबैक चलाऊंगा। हालांकि मैंने यह समस्या मेरी समस्या पर पोस्ट की है, मुझे इस पर वैकल्पिक तरीकों में दिलचस्पी है:)।
var e = document.createElement ('' डीओएम में मुख्य पुस्तकालय (जेक्जरी) लोड करें, मैंने एक ईवेंट श्रोता को संलग्न किया है, स्क्रिप्ट '); E.type = 'text / javascript'; E.src = http: // ... jquerylibrary.js e.addEventListener ('लोड', कॉलबैक);
var कॉलबैक = फ़ंक्शन () {// मेरी सामग्री जो jquery का उपयोग करना चाहती है} < / कोड>
attachEvent ('onload', callback);
फ़ंक्शन लोड एलेमेंट (ई, कॉलबैक) {यदि (टाइपफ (कॉलबैक) === 'फंक्शन') {e.onreadystatechange = e.onload = function () {var state = e.readyState ; अगर (! Callback.done & amp; (! State || / loadedcomplete/.test(state))) {callback.done = true; वापस कॉल करें(); }}} Document.body.appendChild (e); }
Comments
Post a Comment