动态,跨浏览器的脚本加载 [英] Dynamic, cross-browser script loading

查看:154
本文介绍了动态,跨浏览器的脚本加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道,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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆