需求当前我开发了一个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该何时加载。
相关分类