JS指令碼按順序依次載入執行
阿新 • • 發佈:2018-12-14
今天同事遇到一個需求,就是需要動態載入的指令碼按順序依次載入執行。嘗試了使用document.write(DOMContentLoaded之後不能使用該方法,且該方法不推薦使用),使用defer=“async”(部分瀏覽器比較古老,不支援該屬性)。最後我寫了一個方法,實現指令碼的按順序載入,程式碼如下:
function loadScript(){ var scriptArr = Array.prototype.slice.apply(arguments); var script = document.createElement('script'); script.type = 'text/javascript'; var rest = scriptArr.slice(1); if(rest.length > 0){ script.onload = script.onreadystatechange = function() { if ( !this.readyState || this.readyState === "loaded" || this.readyState === "complete" ) { loadScript.apply(null, rest); // Handle memory leak in IE script.onload = script.onreadystatechange = null; } }; } script.src = scriptArr[0]; document.body.appendChild(script); } loadScript('1.js','2.js','3.js');
該方法相容IE喲!!!