异步安全加载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 相关文章推荐
javascript Ext JS 状态默认存储时间
Feb 15 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 Javascript
js判断选择的时间是否大于今天的代码
Aug 20 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
Bootstrap基本样式学习笔记之表格(2)
Dec 07 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
Vue CL3 配置路径别名详解
May 30 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
vue实现在线翻译功能
Sep 27 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
Nov 13 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制作简单的内容采集器的代码
2007/11/28 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
精通Javascript系列之数值计算
2011/06/07 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
vue之将echart封装为组件
2018/06/02 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
vue升级之路之vue-router的使用教程
2018/08/14 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
python局部赋值的规则
2013/03/07 Python
python单链表实现代码实例
2013/11/21 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
python实现图片筛选程序
2018/10/24 Python
python实现一组典型数据格式转换
2018/12/15 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
经理管理专业毕业自荐书范文
2014/02/12 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
2014年教师工作总结
2014/11/10 职场文书
考勤制度通知
2015/04/25 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书