动态加载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 相关文章推荐
JObj预览一个JS的框架
Mar 13 Javascript
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
Apr 14 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 Javascript
JsRender实用入门教程
Oct 31 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
Aug 28 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 Javascript
原生js实现手风琴功能(支持横纵向调用)
Jan 13 Javascript
详解vee-validate的使用个人小结
Jun 07 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
如何从零开始手写Koa2框架
Mar 22 Javascript
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
在smarty中调用php内置函数的方法
2013/02/07 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
php框架知识点的整理和补充
2021/03/01 PHP
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
驱动事件的addEvent.js代码
2007/03/27 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
webpack3之loader全解析
2017/10/26 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
python计算圆周率pi的方法
2015/07/11 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
销售自我评价
2013/10/22 职场文书
魅力教师事迹材料
2014/01/10 职场文书
总经理助理的职责
2014/03/14 职场文书
公休请假条
2014/04/11 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python