异步安全加载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 相关文章推荐
XML+XSL 与 HTML 两种方案的结合
Apr 22 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 Javascript
jquery div拖动效果示例代码
Dec 08 Javascript
JS回调函数的应用简单实例
Sep 17 Javascript
jQuery的css() 方法使用指南
May 03 Javascript
javascript数组去重小结
Mar 07 Javascript
js实现城市级联菜单的2种方法
Jun 23 Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 Javascript
Vue计算属性的使用
Aug 04 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
javascript函数式编程基础
Sep 15 Javascript
Vue+Flask实现图片传输功能
Apr 01 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
把文本中的URL地址转换为可点击链接的JavaScript、PHP自定义函数
2014/07/29 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
python实现数据写入excel表格
2018/03/25 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
pymysql的简单封装代码实例
2020/01/08 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
餐厅考勤管理制度
2014/01/28 职场文书
学习十八大的心得体会
2014/09/12 职场文书
基层党员对照检查材料
2014/09/24 职场文书
公民代理授权委托书
2014/09/24 职场文书
技术支持岗位职责
2015/02/13 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
《刷子李》教学反思
2016/02/20 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书