您好,匿名用户
随意问技术百科期待您的加入

如何判断Javascript script标签加载完毕

0 投票

需求

当前我开发了一个Javascript插件,它拥有两部分LOADER(用于加载MAIN和其他额外操作)和MAIN(插件主体),LOADER会在某个时刻(由用户的操作事件决定)加载,而我希望MAIN在页面所有script标签加载并且执行完毕后再加载。

困境

在常规思路中,使用window.onload可以在window加载后加载MAIN,然而,某些复杂页面本身可能已经存在插件,而MAIN应该在所有插件的script标签加载并且执行完毕后再加载。

思路

由于其他插件可能动态加载script插件。我当前的想法是在LOADER中获取所有script标签(document.getElementsByTagName('script')),然后判断它们是否都已经加载了,如果全部都加载了,则加载MAIN,如何没有全部完成加载,则setInterval等待。然而问题是,在IE中,script标签有readyState来判断script状态,而其他浏览器没有。虽然可以使用script.onload最为触发机制,但是在LOADER加载后,可能已经有些script已经加载,对于这些script标签,它们的onload事件永远不会触发,因此我们在这里并不知道未加载script的个数是多少,因此也不能确定MAIN该何时加载。

用户头像 提问 2014年 6月7日 @ Riven 上等兵 (334 威望)
分享到:

1个回答

0 投票

使用 head.js 这样的插件可以满足你的需要。
如果需要研究如果兼容各浏览器的话,看一下 head.load.js 非常有益。

http://headjs.com/

用户头像 回复 2014年 6月7日 @ Twisted Fate 上等兵 (184 威望)
提一个问题:

相关问题

0 投票
1 回复 52 阅读
用户头像 提问 2012年 12月1日 @ Trish 上等兵 (154 威望)
0 投票
1 回复 32 阅读
用户头像 提问 2012年 12月1日 @ Wukong 上等兵 (475 威望)
+1 投票
1 回复 30 阅读
用户头像 提问 2013年 9月10日 @ Usopp 上等兵 (128 威望)
0 投票
1 回复 29 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...