异步安全加载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 相关文章推荐
Extjs中使用extend(js继承) 的代码
Mar 15 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
angularJS 中input示例分享
Feb 09 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
angularJS 指令封装回到顶部示例详解
Jan 22 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
Jul 04 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
js实现Tab选项卡切换效果
Jul 17 Javascript
vue配置多页面的实现方法
May 22 Javascript
关于layui 弹出层一闪而过就消失的解决方法
Sep 09 Javascript
Vue + iView实现Excel上传功能的完整代码
Jun 22 Vue.js
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
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
容易被忽略的JS脚本特性
2011/09/13 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
深入浅析knockout源码分析之订阅
2016/07/12 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
Python读取word文本操作详解
2018/01/22 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
python set内置函数的具体使用
2019/07/02 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
高级文秘工作总结的自我评价
2013/09/28 职场文书
超市营业员岗位职责
2013/12/20 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
法学毕业生自我鉴定
2014/01/31 职场文书
高中生评语大全
2014/04/25 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js
MySQL通过binlog恢复数据
2021/05/27 MySQL
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
你真的会用Mysql的explain吗
2022/03/31 MySQL