2010-12-01 5 views
6

मैंने अपने एचटीएमएल में एक और जावास्क्रिप्ट शामिल करने के लिए जेएस फ़ंक्शन बनाया है। मुझे यह सुनिश्चित करने की ज़रूरत है कि मैंने जिस स्क्रिप्ट को फ़ंक्शन का उपयोग करके लोड किया है, वह प्रसंस्करण पूर्ण हो गया है और फिर मेरी मूल स्क्रिप्ट में आगे बढ़ता है।एक विशिष्ट जेएस लोड होने के बाद जावास्क्रिप्ट फ़ंक्शन कैसे चलाएं?

function loadBackupScript(){ 
    var script = document.createElement('script'); 
    script.src = 'http://www.geoplugin.net/javascript.gp'; 
    script.type = 'text/javascript'; 
    var head = document.getElementsByTagName("head")[0]; 
    head.appendChild(script); 
} 

मुझे यह जानने की जरूरत है कि स्क्रिप्ट आगे अपने कार्यों का उपयोग करने के लिए लोड हो गई है। मैं उसको कैसे करू?

उत्तर

8
function loadBackupScript(callback) { 
    var script; 
    if (typeof callback !== 'function') { 
     throw new Error('Not a valid callback'); 
    } 
    script = document.createElement('script'); 
    script.onload = callback; 
    script.src = 'http://www.geoplugin.net/javascript.gp'; 
    document.head.appendChild(script); 
} 

loadBackupScript(function() { alert('loaded'); }); 
2

अपने कार्य करने के लिए इस जोड़ें:

// all cool browsers 
script.onload = doSomething; 
// IE 6 & 7 
script.onreadystatechange = function() { 
if (this.readyState == 'complete') { 
    doSomething(); 
} 

आप इन घटनाओं आप भी setTimeout इस्तेमाल कर सकते हैं विश्वास नहीं करते हैं() फ़ंक्शन के होने की जाँच करने के लिए। इस पर एक अच्छा लेख यहां पाया जा सकता:

http://www.ejeliot.com/blog/109

1

मैं इसके लिए LABJs का उपयोग कर की सिफारिश करेंगे।

इसका इस्तेमाल करते हुए आप कर सकते हैं

$LAB 
.script("framework.js") 
.wait(function(){ 
    //called when framework.js is loaded 
}) 
.script("init.js") 
.wait(function(){ 
    //called when init.js is loaded 
}); 

इस पार ब्राउज़र है और अक्सर अपने html में स्क्रिप्ट टैग हार्डकोड तुलना में अधिक कुशल हो जाएगा जिस तरीके को यह यह समानांतर डाउनलोड का समर्थन करता है।

आप इस here

के बारे में अधिक पढ़ सकते हैं
संबंधित मुद्दे

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