我需要動態地和順序地加載一些js文件(即第一個腳本,第三個腳本,第二個腳本等)加載完成後的第二個腳本。動態腳本加載的最佳方式
問題:如何在一個腳本已經加載檢測?我遇到了onload事件的問題 - 它不會在IE8中觸發。閱讀this後,我試圖訂閱的onreadystatechange並寫了非常難看的代碼加載腳本:
function loadScript(url, callback) {
var isLoaded = false;
var script = document.createElement('script');
script.onreadystatechange = function() {
if ((script.readyState == 'complete' || script.readyState == 'loaded') && !isLoaded) {
if (callback) callback();
}
};
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url);
document.head.appendChild(script);
};
您能否提供更好的跨瀏覽器解決方案,而這樣的把戲?
UPD: 感謝您的回答。如果我還需要加載jquery.js(例如,客戶端有舊版本),我應該怎麼做?
關於你提到的更新:爲什麼不包括庫加載腳本(比如jQuery的)像任何其他JavaScript文件: 我看不到一個簡單的方法或動態添加要用來動態加載腳本的庫的必要性。 – Preli
@Preli,它將被嵌入到另一個具有一個腳本和一個div標籤的站點。 – 2xMax