动态加载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 节点排序 2
Jan 31 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
JS替换字符串中字符即替换全部而不是第一个
Jun 04 Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
May 07 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
Angular2监听页面大小变化的解决方法
Oct 09 Javascript
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
微信小程序保存图片到相册权限设置
Apr 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
php切割页面div内容的实现代码分享
2012/07/31 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php实现算术验证码功能
2018/12/05 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
python实现排序算法
2014/02/14 Python
Python实现端口复用实例代码
2014/07/03 Python
Python实现批量转换文件编码的方法
2015/07/28 Python
Python复制文件操作实例详解
2015/11/10 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
使用HTML5的表单验证的简单示例
2015/09/09 HTML / CSS
旅游管理本科生求职信
2013/10/14 职场文书
精彩的大学生自我评价
2013/11/17 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers