动态加载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 JSON操作入门实例
Apr 16 Javascript
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
Jan 29 Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
Dec 26 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
详解Vue源码学习之callHook钩子函数
Jul 25 Javascript
ES6 如何改变JS内置行为的代理与反射
Feb 11 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 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
用ODBC的分页显示
2006/10/09 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
Vue项目利用axios请求接口下载excel
2020/11/17 Vue.js
Python3基础之基本数据类型概述
2014/08/13 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
Python super()方法原理详解
2020/03/31 Python
python如何写出表白程序
2020/06/01 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
2020/10/02 Python
python 爬虫如何正确的使用cookie
2020/10/27 Python
python3处理word文档实例分析
2020/12/01 Python
绝对令人的惊叹的CSS3折叠效果(3D效果)整理
2012/12/30 HTML / CSS
英国异国风情旅游网站:Travel Talk Tours(团体旅游、探险旅游、帆船假期)
2018/07/26 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
学生夜不归宿检讨书
2014/09/23 职场文书
导游词之崇武古城
2019/10/07 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS