gpt4 book ai didi

javascript - 如果未加载,则加载 jQuery

转载 作者:行者123 更新时间:2023-11-29 10:10:46 25 4
gpt4 key购买 nike

我已经创建了一个格式如下的 jQuery 插件。在某些网站上,我注意到我收到了类似 TypeError: $.myApp is not a function 的错误消息。

我还注意到,其中一些网站可能不止一次包含 jQuery,而其他插件可能包含 jQuery 版本,或者甚至可能根本没有加载 jQuery。我无法控制这些网站或正在使用的其他插件。

无论安装了哪些其他插件和 jQuery 版本,如何确保我的插件可靠运行?

;(function($, window, document, undefined) {
var myApp = function(options) {

this.init = function() {
};

this.init();
};

$.myApp = function(options) {
return myApp (options);
};
})(jQuery, window, document);

最佳答案

您可以使用 Ben Alman 的 Bookmarklet generator 中的代码( code source ):

(function( window, document, req_version, callback, $, script, done, readystate ){

// If jQuery isn't loaded, or is a lower version than specified, load the
// specified version and call the callback, otherwise just call the callback.
if ( !($ = window.jQuery) || req_version > $.fn.jquery || callback( $ ) ) {

// Create a script element.
script = document.createElement( 'script' );
script.type = 'text/javascript';

// Load the specified jQuery from the Google AJAX API server (minified).
script.src = 'http://ajax.googleapis.com/ajax/libs/jquery/' + req_version + '/jquery.min.js';

// When the script is loaded, remove it, execute jQuery.noConflict( true )
// on the newly-loaded jQuery (thus reverting any previous version to its
// original state), and call the callback with the newly-loaded jQuery.
script.onload = script.onreadystatechange = function() {
if ( !done && ( !( readystate = this.readyState )
|| readystate == 'loaded' || readystate == 'complete' ) ) {

callback( ($ = window.jQuery).noConflict(1), done = 1 );

$( script ).remove();
}
};

// Add the script element to either the head or body, it doesn't matter.
document.documentElement.childNodes[0].appendChild( script );
}

})( window, document,

// Minimum jQuery version required. Change this as-needed.
'1.3.2',

// Your jQuery code goes inside this callback. $ refers to the jQuery object,
// and L is a boolean that indicates whether or not an external jQuery file
// was just "L"oaded.
function( $, L ) {
'$:nomunge, L:nomunge'; // Used by YUI compressor.

/* YOUR JQUERY CODE GOES HERE */

}
);

关于javascript - 如果未加载,则加载 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com