這篇文章主要介紹了動態加載jQuery的兩種方法,實例分析了jquery動態加載的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了動態加載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 [email protected]
- // @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程序設計有所幫助。
新聞熱點
疑難解答
圖片精選