动态加载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 相关文章推荐
[对联广告] JS脚本类
Aug 27 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
JavaScript 页面坐标相关知识整理
Jan 09 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
js验证模型自我实现的具体方法
Jun 21 Javascript
jquery自动将form表单封装成json的具体实现
Mar 17 Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
May 04 Javascript
浅谈angularjs中响应回车事件
Apr 24 Javascript
vue引入js数字小键盘的实现代码
May 14 Javascript
javascript操作元素的常见方法小结
Nov 13 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 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
Terran兵种介绍
2020/03/14 星际争霸
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
JQuery从头学起第三讲
2010/07/06 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
Angular路由简单学习
2016/12/26 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
Angular.js去除页面中显示的空行方法示例
2017/03/30 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
Python 第一步 hello world
2009/09/25 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
python 求10个数的平均数实例
2019/12/16 Python
postman和python mock测试过程图解
2020/02/22 Python
关于python中的xpath解析定位
2020/03/06 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
淘宝客服工作职责
2014/07/11 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
运动会入场词
2015/07/18 职场文书
技能培训通讯稿
2015/07/18 职场文书
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS