异步安全加载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 相关文章推荐
可输入的下拉框
Jun 19 Javascript
javascript 一个自定义长度的文本自动换行的函数
Aug 19 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
js/jQuery简单实现选项卡功能
Jan 02 Javascript
JS动态增加删除UL节点LI及相关内容示例
May 21 Javascript
jQuery中:hidden选择器用法实例
Dec 30 Javascript
js判断某个方法是否存在实例代码
Jan 10 Javascript
jquery制作LED 时钟特效
Feb 01 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
JS实现放烟花效果
Mar 10 Javascript
vue-model实现简易计算器
Aug 17 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP图片验证码制作实现分享(全)
2012/05/10 PHP
PHP中include与require使用方法区别详解
2013/10/19 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
Python测试Kafka集群(pykafka)实例
2019/12/23 Python
Python插件机制实现详解
2020/05/04 Python
如何理解Python中的变量
2020/06/01 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
白宫黑市官网:White House Black Market
2016/11/17 全球购物
《小松树和大松树》教学反思
2014/02/20 职场文书
医学专业自荐信
2014/06/14 职场文书
三八妇女节致辞
2015/07/31 职场文书
小学英语教学反思范文
2016/02/15 职场文书