异步安全加载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 相关文章推荐
Js的MessageBox
Dec 03 Javascript
javascript面向对象编程代码
Dec 19 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
基于jquery实现表格内容筛选功能实例解析
May 09 Javascript
文件上传的几个示例分享【推荐】
Dec 16 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
微信小程序实现图片放大预览功能
Oct 22 Javascript
浅谈gulp创建完整的项目流程
Dec 20 Javascript
JavaScript比较同一天的时间大小实例代码
Feb 09 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 Javascript
vue 中的动态传参和query传参操作
Nov 09 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中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
Js切换功能的简单方法
2010/11/23 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
详解Vue方法与事件
2017/03/09 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
2018/01/08 jQuery
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
Python爬虫模拟登录带验证码网站
2016/01/22 Python
python如何通过protobuf实现rpc
2016/03/06 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
python获取Pandas列名的几种方法
2019/08/07 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
会务接待方案
2014/02/27 职场文书
表扬稿范文
2015/01/17 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
详解Vue的options
2021/05/15 Vue.js