2012-07-16 14 views
11

मैंने इस समस्या के समाधान के लिए काफी कुछ खोजा है लेकिन अब तक कोई ऐसा नहीं मिला है जो क्रॉस ब्राउज़र का काम करता है।आंतरिक HTML पूर्ण होने पर कैसे पता लगाया जाए

मुझे जो चाहिए वह कच्चे जावास्क्रिप्ट फ़ंक्शन है जो एक तत्व लेगा और कॉलमबैक चलाएगा जब आंतरिक HTML को सफलतापूर्वक डोम में डाला गया हो।

उदा।

var element = document.getElementById('example'); 
     element.innerHTML = newhtml; 

    waitUntilReady(element, function(){ 
      //do stuff here... 
    }); 

तो बस संक्षेप में प्रस्तुत करने, मैं तत्व की सामग्री की जाँच करें और एक कॉलबैक आग जब innerHTML पूरा कर लिया है करने के लिए सक्षम होना चाहिए।

किसी भी मदद के लिए अग्रिम धन्यवाद।

+1

आपको क्या लगता है कि आपको कॉलबैक की आवश्यकता है? –

+0

@am मैं नहीं हूं - कृपया मेरी टिप्पणी नीचे कोलिंक के उत्तर – gordyr

+1

पर देखें क्या आप यह देख रहे हैं? http://james.padolsey.com/javascript/asynchronous-innerhtml/ – noj

उत्तर

5

ऐसे फ़ंक्शन की कोई आवश्यकता नहीं है। innerHTML को असाइन करना किसी भी स्क्रिप्ट को चलाने के पहले तुरंत ऐसा करेगा।

यदि आपको वास्तव में निष्पादन में देरी करने की आवश्यकता है (ब्राउज़र को फिर से निकालने की अनुमति देने के लिए कहें), 1 (या अन्य लघु अंतराल) की देरी के साथ setTimeout का उपयोग करें।

+1

अहह, अगर वास्तव में यह मामला महान है। लेकिन यह अभी भी मुझे अपने मूल मुद्दे के साथ छोड़ देता है। मैं एचटीएमएल को जोड़ने के बाद सीधे एक स्क्रिप्ट डालने वाला हूं जो नए एचटीएमएल के भीतर मौजूद कुछ तत्वों को घटनाओं से जोड़ता है। हालांकि यह अधिकांश ब्राउज़र पुराने आईई 8 पर ठीक काम करता है और नीचे प्रतीत होता है कि तत्व समय के लगभग 50% शून्य है। मेरी धारणा यह थी कि ऐसा इसलिए था क्योंकि जब मैं घटनाओं को अटैच करने का प्रयास कर रहा था तो नया डाला गया एचटीएमएल हमेशा 'तैयार' नहीं था। – gordyr

+0

सुनिश्चित करें कि 'आंतरिक HTML' असाइनमेंट के बाद कहीं भी स्क्रिप्ट को पृष्ठ में जोड़ा जा रहा है और इसके लिए काम नहीं करने का कोई कारण नहीं है। –

+0

वे वास्तव में हैं। फिर भी यह अभी भी आईई के पुराने संस्करणों में केवल 50% सफलता दर है। मुझे लगता है कि समस्या मेरे कोड में कहीं और रखना चाहिए और एचटीएमएल के बारे में मेरी धारणा 'तैयार' नहीं होने पर गलत थी। – gordyr

संबंधित मुद्दे