怎么判断js脚本加载完成

 更新时间:2014年02月28日 09:38:36   作者:  
本篇文章主要是对判断js脚本加载完成的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助

在“按需加载”的需求中,我们经常会判断当脚本加载完成时,返回一个回调函数,那如何去判断脚本的加载完成呢?

我们可以对加载的 JS 对象使用 onload 来判断(js.onload),此方法 Firefox2、Firefox3、Safari3.1+、Opera9.6+ 浏览器都能很好的支持,但 IE6、IE7 却不支持。曲线救国 —— IE6、IE7 我们可以使用 js.onreadystatechange 来跟踪每个状态变化的情况(一般为 loading 、loaded、interactive、complete),当返回状态为 loaded 或 complete 时,则表示加载完成,返回回调函数。

对于 readyState 状态需要一个补充说明:

1.在 interactive 状态下,用户可以参与互动。
2.Opera 其实也支持 js.onreadystatechange,但他的状态和 IE 的有很大差别。

复制代码 代码如下:

<script>

function include_js(file) {
    var _doc = document.getElementsByTagName('head')[0];
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
    _doc.appendChild(js);

    if (!/*@cc_on!@*/0) { //if not IE
        //Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
        js.onload = function () {
            alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload');
        }
    } else {
        //IE6、IE7 support js.onreadystatechange
        js.onreadystatechange = function () {
            if (js.readyState == 'loaded' || js.readyState == 'complete') {
                alert('IE6、IE7 support js.onreadystatechange');
            }
        }
    }

    return false;
}


include_js('http://www.planabc.net/wp-includes/js/jquery/jquery.js');
</script>

相关文章

  • XMLHTTPRequest的属性和方法简介

    XMLHTTPRequest的属性和方法简介

    由于现在在公司负责制作标准的静态页面,为了增强客户体验,所以经常要做些AJAX效果,也许你也和我一样在,学习AJAX。
    2010-11-11
  • js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问

    js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问

    这篇文章主要介绍了js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问,需要的朋友可以参考下
    2015-09-09
  • 学习javascript面向对象 掌握创建对象的9种方式

    学习javascript面向对象 掌握创建对象的9种方式

    这篇文章主要为大家介绍了创建对象的9种方式,帮助大家更好地学习javascript面向对象,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • this和执行上下文实现代码

    this和执行上下文实现代码

    Javascript中this关键字通常指向当前函数的拥有者。在javascript中通常把这个拥有者叫做执行上下文。
    2010-07-07
  • JS基于贪心算法解决背包问题示例

    JS基于贪心算法解决背包问题示例

    这篇文章主要介绍了JS基于贪心算法解决背包问题,简单说明了贪心算法的概念、原理,并结合具体实例形式分析了JS使用贪心算法解决部分背包问题的具体操作技巧,需要的朋友可以参考下
    2017-11-11
  • 详解前端自动化工具gulp自动添加版本号

    详解前端自动化工具gulp自动添加版本号

    这篇文章主要介绍了详解前端自动化工具gulp自动添加版本号 ,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • bootstrap table服务端实现分页效果

    bootstrap table服务端实现分页效果

    这篇文章主要为大家详细介绍了bootstrap table服务端实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • javaScript实现滚动条事件详解

    javaScript实现滚动条事件详解

    这篇文章主要为大家详细介绍了javaScript实现滚动条事件的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 详解js的事件代理(委托)

    详解js的事件代理(委托)

    JavaScript事件代理(委托)一般用于以下情况:1. 事件注册在祖先级元素上,代理其子级元素。可以减少事件注册数量,节约内存开销,提高性能。2. 对js动态添加的子元素可自动绑定事件。本文主要介绍用原生 js 实现该功能。下面跟着小编一起来看下吧
    2016-12-12
  • JavaScript canvas复刻苹果发布会环形进度条

    JavaScript canvas复刻苹果发布会环形进度条

    canvas 真是一个好东西,它给前端插上了想象的翅膀,伴随着 h5 而来,将 web 代入了新的领域。本文将利用anvas复刻苹果发布会环形进度条,感兴趣的可以尝试一下
    2022-07-07

最新评论