异步安全加载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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
Oct 25 Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
Dec 01 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 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
聊天室php&mysql(五)
2006/10/09 PHP
15种PHP Encoder的比较
2007/04/17 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
ES6 Proxy实现Vue的变化检测问题
2019/06/11 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[04:59]DOTA2-DPC中国联赛 正赛 Ehome vs iG 选手采访
2021/03/11 DOTA
python 随机数使用方法,推导以及字符串,双色球小程序实例
2017/09/12 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
Python理解递归的方法总结
2019/01/28 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
Python猜数字算法题详解
2020/03/01 Python
Python正则表达式如何匹配中文
2020/05/27 Python
Python hashlib模块的使用示例
2020/10/09 Python
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
营业员实习自我鉴定
2013/12/07 职场文书
财务专业大学生职业生涯规划范文
2013/12/30 职场文书
法定代表人身份证明书
2014/09/10 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
iPhone13再次曝光
2021/04/15 数码科技