异步安全加载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冒泡事件的快速解决方法
Dec 16 Javascript
javascript中打印当前的时间实现思路及代码
Dec 18 Javascript
javascript实现节点(div)名称编辑
Dec 17 Javascript
jquery实现可旋转可拖拽的文字效果代码
Jan 27 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
Aug 19 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
jquery ztree实现右键收藏功能
Nov 20 jQuery
Angular CLI在Angular项目中如何使用scss详解
Apr 10 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
layui table去掉右侧滑动条的实现方法
Sep 05 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
SONY ICF-F10中波修复记
2021/03/02 无线电
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
php PDO中文乱码解决办法
2009/07/20 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
jQuery前台数据获取实现代码
2011/03/16 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
JS.findElementById()使用介绍
2013/09/21 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
python中使用mysql数据库详细介绍
2015/03/27 Python
使用Python编写vim插件的简单示例
2015/04/17 Python
python实现下载文件的三种方法
2017/02/09 Python
Unicode和Python的中文处理
2017/03/19 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
优秀教师个人材料
2014/12/15 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
创业计划书之餐饮
2019/09/02 职场文书
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫