异步安全加载javascript文件的方法


Posted in Javascript onJuly 21, 2015

本文实例讲述了异步安全加载javascript文件的方法。分享给大家供大家参考。具体如下:

使用方法:

(function() {
  __safeLoadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", function() {
    alert(jQuery);
  });
})();

JavaScript实现代码:

window.__safeLoadScript = function(src, callback) {
  function addEvent(obj, type, fn) {
    if (obj.attachEvent) {
      obj['e' + type + fn] = fn;
      obj[type + fn] = function() { obj['e' + type + fn](window.event); }
      obj.attachEvent('on' + type, obj[type + fn]);
    } else
      obj.addEventListener(type, fn, false);
  }
  function async_load(src, callback) {
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    var protocol = (("https:" == document.location.protocol) ? "https://" : "http://");
    s.src = protocol + src;
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
    s.onload = s.onreadystatechange = function() {
      if(callback && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) {
        callback();
      }
    };
  }
  addEvent(window, "load", function() { 
    async_load(src, callback);
  });
};

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
jquery mobile页面跳转后样式丢失js失效的解决方法
Sep 06 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
Jun 05 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
理解 JavaScript Scoping & Hoisting(二)
Nov 18 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
javascript的BOM
May 03 Javascript
AngularJS基础 ng-repeat 指令简单示例
Aug 03 Javascript
原生JS进行前后端同构
Apr 22 Javascript
Promise扫盲贴
Jun 24 Javascript
浅谈vue中组件绑定事件时是否加.native
Nov 09 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 #Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 #Javascript
SWFObject基本用法实例分析
Jul 20 #Javascript
jQuery.prop() 使用详解
Jul 19 #Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 #Javascript
jQuery的position()方法详解
Jul 19 #Javascript
ExtJs动态生成treepanel的Json格式
Jul 19 #Javascript
You might like
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
javascript 自动转到命名锚记
2009/01/10 Javascript
javascript 面向对象编程 聊聊对象的事
2009/09/17 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
2015/09/14 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
理解Python中的With语句
2015/02/02 Python
Python中的下划线详解
2015/06/24 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
Python自动登录QQ的实现示例
2020/08/28 Python
python利用opencv保存、播放视频
2020/11/02 Python
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
中专生自荐信
2013/10/12 职场文书
电子专业推荐信范文
2013/11/18 职场文书
退休感言
2014/01/28 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
连锁超市项目计划书
2014/09/15 职场文书
退休欢送会主持词
2015/07/01 职场文书