动态加载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 相关文章推荐
JQuery 学习笔记 element属性控制
Jul 23 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
Mar 21 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
微信小程序收藏功能的实现代码
Jun 12 Javascript
基于VUE实现的九宫格抽奖功能
Sep 30 Javascript
vue移动端城市三级联动组件使用详解
Jul 26 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 15 Javascript
微信小程序 冒泡事件原理解析
Sep 27 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中使用GD库创建圆形饼图的例子
2014/11/19 PHP
php计算年龄精准到年月日
2015/11/17 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
基于Bootstrap仿淘宝分页控件实现代码
2016/11/07 Javascript
javascript使用递归算法求两个数字组合功能示例
2017/01/03 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
搭建vue开发环境
2018/07/19 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
微信跳一跳python代码实现
2018/01/05 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
python中eval与int的区别浅析
2019/08/11 Python
python 两个数据库postgresql对比
2019/10/21 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python通过cython加密代码
2020/12/11 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
高三自我鉴定
2013/10/23 职场文书
三爱活动实施方案
2014/03/19 职场文书
施工安全标语
2014/06/07 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers