动态加载jQuery的两种方法实例分析


Posted in Javascript onJuly 17, 2015

本文实例讲述了动态加载jQuery的两种方法。分享给大家供大家参考。具体如下:

第一种方法参考本站之前有人发的代码,增加了加载检测;
第二种方法来自去年的12306刷票脚本。

第一种方法:

function withjQuery(callback) {
 if(!(window.jQuery)) {
 var js = document.createElement('script');
 js.setAttribute('src', 'https://dynamic.12306.cn/otsweb/js/common/jquery-1.4.2.min.js?version=5.47');
 js.setAttribute('type', 'text/javascript');
 js.onload = js.onreadystatechange = function() {
  if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {
    if(callback && typeof callback === "function") {
     callback();
    }
   js.onload = js.onreadystatechange = null;
  }
 };
 document.getElementsByTagName('head')[0].appendChild(js);
 }
}
withjQuery( 
 function() { 
  $(function(){ alert("jQuery loaded"); })(); 
 }
);

第二种方法:

// ==UserScript== 
// @name   12306 Booking Assistant
// @version  1.4.0
// @author  zzdhidden@gmail.com
// @namespace https://github.com/zzdhidden
// @description 12306 订票助手之(自动登录,自动查票,自动订单)
// @include  *://dynamic.12306.cn/otsweb/*
// @require https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
// ==/UserScript== 
function withjQuery(callback, safe){
 if(typeof(jQuery) == "undefined") {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
  if(safe) {
   var cb = document.createElement("script");
   cb.type = "text/javascript";
   cb.textContent = "jQuery.noConflict();(" + callback.toString() + ")(jQuery, window);";
   script.addEventListener('load', function() {
    document.head.appendChild(cb);
   });
  }
  else {
   var dollar = undefined;
   if(typeof($) != "undefined") dollar = $;
   script.addEventListener('load', function() {
    jQuery.noConflict();
    $ = dollar;
    callback(jQuery, window);
   });
  }
  document.head.appendChild(script);
 } else {
  setTimeout(function() {
   //Firefox supports
   callback(jQuery, typeof unsafeWindow === "undefined" ? window : unsafeWindow);
  }, 30);
 }
}
withjQuery(function($, window){
 $(function() { alert("jQuery loaded"); })();
}, true);

希望本文所述对大家的jquery程序设计有所帮助。

Javascript 相关文章推荐
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
使用JavaScriptCore实现OC和JS交互详解
Mar 28 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
Sep 14 Javascript
详解用函数式编程对JavaScript进行断舍离
Sep 18 Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
微信小程序实现渐入渐出动画效果
Jun 13 Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 Javascript
基于JS实现操作成功之后自动跳转页面
Sep 25 Javascript
使用refresh_token实现无感刷新页面
Apr 26 Javascript
javascript父子页面通讯实例详解
Jul 17 #Javascript
javascript实现的闭包简单实例
Jul 17 #Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 #Javascript
JavaScript实现基于十进制的四舍五入实例
Jul 17 #Javascript
JavaScript之AOP编程实例
Jul 17 #Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 #Javascript
javascript封装的sqlite操作类实例
Jul 17 #Javascript
You might like
php面向对象的方法重载两种版本比较
2008/09/08 PHP
PHP7.1新功能之Nullable Type用法分析
2016/09/26 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
分享几个超级震憾的图片特效
2012/01/08 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
Python实现备份文件实例
2014/09/16 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Python3字符串encode与decode的讲解
2019/04/02 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
机械工程系毕业生求职信
2013/09/27 职场文书
学历公证书范本
2014/04/09 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
面试自我评价范文
2014/09/17 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
赢在中国观后感
2015/06/02 职场文书
2015年中学图书馆工作总结
2015/07/22 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
Python中相见恨晚的技巧
2021/04/13 Python
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android