Aar*_*ken 13 javascript internet-explorer asynchronous cross-browser
我知道IE没有元素load事件<script>- 有没有办法可靠地弥补这一点?
我已经看过一些关于事物的讨论(例如requestState == "complete"),但没有什么可以证实的.
这是为了在脚本加载完成后调用代码,这样我就不必使用AJAX来加载新的源代码(从而消除了跨域AJAX的问题).
Ili*_*oly 25
您可以使用head.js之类的脚本加载器.它有自己的负载回调,它也会减少加载时间.
从headjs代码:(略微修改为更便携)
function scriptTag(src, callback) {
var s = document.createElement('script');
s.type = 'text/' + (src.type || 'javascript');
s.src = src.src || src;
s.async = false;
s.onreadystatechange = s.onload = function () {
var state = s.readyState;
if (!callback.done && (!state || /loaded|complete/.test(state))) {
callback.done = true;
callback();
}
};
// use body if available. more safe in IE
(document.body || head).appendChild(s);
}
Run Code Online (Sandbox Code Playgroud)