动态加载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 入门基础知识 想学习js的朋友可以参考下
Dec 26 Javascript
jquery nth-child()选择器的简单应用
Jul 10 Javascript
Prototype源码浅析 Enumerable部分之each方法
Jan 16 Javascript
easyui datagrid 键盘上下控制选中行示例
Mar 31 Javascript
js获取客户端操作系统类型的方法【测试可用】
May 27 Javascript
AngularJS 所有版本下载地址
Sep 14 Javascript
学习vue.js表单控件绑定操作
Dec 05 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
微信小程序实现刷脸登录
May 25 Javascript
详解Puppeteer前端自动化测试实践
Feb 21 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 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脚本的10个技巧(8)
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
Python用GET方法上传文件
2015/03/10 Python
Python中的类与对象之描述符详解
2015/03/27 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
关于python的list相关知识(推荐)
2017/08/30 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python多线程的退出控制实现
2020/08/10 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
.net C#面试题
2012/08/28 面试题
老师自我鉴定范文
2013/12/25 职场文书
物流仓管员工作职责
2014/01/06 职场文书
电气个人求职信范文
2014/02/04 职场文书
医院信息公开实施方案
2014/05/09 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
项目安全员岗位职责
2015/02/15 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
总结Python连接CS2000的详细步骤
2021/06/23 Python
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python