异步安全加载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 相关文章推荐
用cssText批量修改样式
Aug 29 Javascript
自动刷新网页,自动刷新当前页面,JS调用
Jun 24 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
Oct 09 Javascript
JS检测数组类型的方法小结
Mar 14 Javascript
angular.js+node.js实现下载图片处理详解
Mar 31 Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
Sep 11 Javascript
JavaScript实现缓动动画
Nov 25 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文件注释标记及规范小结
2012/04/01 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
jQuery mobile在页面加载时添加加载中效果 document.ready 和window.onload执行顺序比较
2016/07/14 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Python 私有函数的实例详解
2017/09/11 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python修改文件内容的3种方法详解
2019/11/15 Python
python爬虫添加请求头代码实例
2019/12/28 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
Python如何基于Tesseract实现识别文字功能
2020/06/05 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
资深生产主管自我评价
2013/09/22 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
试用期辞职信范文
2015/03/02 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
关于倡议书的范文
2015/04/29 职场文书
百年孤独读书笔记
2015/06/29 职场文书
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js