动态,跨浏览器的脚本加载 [英] Dynamic, cross-browser script loading
问题描述
我知道,IE浏览器不具有负荷
事件<脚本>
元素 - 有没有的方式来弥补,保证用户可靠?
I know that IE doesn't have a load
event for <script>
elements — is there any way to make up for that reliably?
我见过的东西(例如, requestState ==完成
),但没有什么很核查的。
I've seen some talk of things (e.g., requestState == "complete"
) but nothing very verifiable.
这是用来让code可以在脚本加载完成后调用,这样我就不必使用AJAX来加载新的来源(从而消除了与跨域AJAX的问题)。
This is to be used so that code can be called after a script is finished loading, so that I don't have to use AJAX to load new sources (thus eliminating issues with cross-domain AJAX).
推荐答案
您可以使用脚本加载器如 head.js 。它有自己的负载回调,这将减少加载时间了。
You can use a script loader like head.js. It has its own load callback and it will decrease load time too.
在 headjs
code:
function scriptTag(src, callback) {
var s = doc.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
(doc.body || head).appendChild(s);
}
这篇关于动态,跨浏览器的脚本加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!