今天同事遇到一个需求,就是需要动态加载的脚本按顺序依次加载执行。尝试了使用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哟!!!
热门文章
- 付费VPN推荐 | 4月20日22.3M/S|免费Shadowrocket/Clash/SSR/V2ray订阅分享
- 一片枫叶还能说什么量词 一片枫叶还能说什么量词呢
- DataView 过滤、排序、DISTINCT功能
- 宠物粮食厂家有些款不能网上销售 宠物粮食厂家有些款不能网上销售吗
- 付费VPN推荐 | 4月27日19.5M/S|免费Clash/V2ray/SSR/Shadowrocket订阅分享
- 使用Proftpd支持FTP/SFTP权限管控
- 1970年6月2日农历是多少(1970年公历6月2日时辰吉凶查询)
- 兽用疫苗查询网站(兽用疫苗真伪查询)
- 付费VPN推荐 | 4月22日20.9M/S|免费Shadowrocket/V2ray/SSR/Clash订阅分享
- 动物医院门头设计图片(动物医院门头设计图片大全)