动态加载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学习网址备忘
May 29 Javascript
从阿里妈妈发现的几个不错的表单验证函数
Sep 21 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
Jan 11 Javascript
jQuery中绑定事件的命名空间详解
Apr 05 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
Aug 27 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
Angular resolve基础用法详解
Oct 03 Javascript
小程序云开发教程如何使用云函数实现点赞功能
May 18 Javascript
vue开发中遇到的问题总结
Apr 07 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 Javascript
吃通javascript正则表达式
Apr 21 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
PHP4实际应用经验篇(2)
2006/10/09 PHP
非常好的php目录导航文件代码
2006/10/09 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
PHP常用的三种设计模式
2017/02/17 PHP
html下载本地
2006/06/19 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
用原生js做个简单的滑动效果的回到顶部
2014/10/15 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
jquery图片放大镜效果
2017/06/23 jQuery
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
javascript实现前端成语点击验证
2020/06/24 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
Django框架下在视图中使用模版的方法
2015/07/16 Python
在python里面运用多继承方法详解
2019/07/01 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
2019/10/08 HTML / CSS
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
花店创业计划书范文
2014/02/07 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
给市场的环保建议书
2014/05/14 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
升学宴演讲稿
2014/09/01 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
银行求职信范文
2019/05/13 职场文书