动态加载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 简单验证代码(用户名,密码,邮箱)
Sep 28 Javascript
jquery实现选中单选按钮下拉伸缩效果
Aug 06 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
JavaScript监听手机物理返回键的两种解决方法
Aug 14 Javascript
async/await地狱该如何避免详解
May 10 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
layui框架与SSM前后台交互的方法
Sep 12 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
Feb 24 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
Sep 05 Javascript
微前端qiankun改造日渐庞大的项目教程
Jun 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
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
客户端静态页面玩分页
2006/06/26 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
jQuery判断iframe中元素是否存在的方法
2013/05/11 Javascript
javascript计时器事件使用详解
2014/01/07 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
一道JS前端闭包面试题解析
2015/12/25 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
js中的闭包实例展示
2018/11/01 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
浅谈Python 对象内存占用
2016/07/15 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
Python中常用的内置方法
2019/01/28 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
户外亲子活动策划方案
2014/02/07 职场文书
2014年秋季开学演讲稿
2014/05/24 职场文书
信息管理专业自荐书
2014/06/05 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
北京英文导游词
2015/02/12 职场文书
运动会通讯稿200字
2015/07/20 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS