动态加载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 相关文章推荐
使用vue.js制作分页组件
Jun 27 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
微信小程序多张图片上传功能
Jun 07 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
vue源码学习之Object.defineProperty对象属性监听
May 30 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
Jun 11 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
基于Vue插入视频的2种方法小结
Apr 02 Javascript
微信小程序实现点击图片放大预览
Oct 21 Javascript
JS轻量级函数式编程实现XDM三
Jun 16 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 高性能书写
2010/12/11 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
js 实现的可折叠留言板(附源码下载)
2014/07/01 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Django框架模板的使用方法示例
2019/05/25 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
办公室前台岗位职责
2014/01/04 职场文书
班级旅游计划书
2014/05/03 职场文书
文艺晚会策划方案
2014/06/11 职场文书
租房安全协议书
2014/08/20 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
个人向公司借款协议书
2014/10/09 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书