gpt4 book ai didi

jquery - jQuery $.browser 是否已弃用?

转载 作者:IT王子 更新时间:2023-10-29 03:25:52 25 4
gpt4 key购买 nike

有人可以告诉我我认为 jQuery 的 $.browser 已被弃用/已弃用是否正确吗?

我现有的实现是否会继续有效?如果没有,是否有易于实现的替代方案。

最佳答案

第二个问题

Will my existing implementations continue to work? If not, is there an easy to implement alternative.

答案是是的,但并非没有一点工作。

$.browser 是一个官方插件,包含在旧版本的 jQuery 中,因此与任何插件一样,您可以简单地复制它并将其合并到您的项目中,或者您可以简单地将它添加到任何 jQuery 版本的末尾。

我已经为您提取了代码,以备您使用。


// Limit scope pollution from any deprecated API
(function() {

var matched, browser;

// Use of jQuery.browser is frowned upon.
// More details: http://api.jquery.com/jQuery.browser
// jQuery.uaMatch maintained for back-compat
jQuery.uaMatch = function( ua ) {
ua = ua.toLowerCase();

var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];

return {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
};

matched = jQuery.uaMatch( navigator.userAgent );
browser = {};

if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}

// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}

jQuery.browser = browser;

jQuery.sub = function() {
function jQuerySub( selector, context ) {
return new jQuerySub.fn.init( selector, context );
}
jQuery.extend( true, jQuerySub, this );
jQuerySub.superclass = this;
jQuerySub.fn = jQuerySub.prototype = this();
jQuerySub.fn.constructor = jQuerySub;
jQuerySub.sub = this.sub;
jQuerySub.fn.init = function init( selector, context ) {
if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
context = jQuerySub( context );
}

return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
};
jQuerySub.fn.init.prototype = jQuerySub.fn;
var rootjQuerySub = jQuerySub(document);
return jQuerySub;
};

})();

如果你问为什么有人需要一个折旧的插件,我准备了以下答案。

首先也是最重要的答案是兼容性。由于 jQuery 是基于插件的,一些开发人员选择使用 $.browser 和最新版本的 jQuery,其中不包括 $.browser 所有那些变得无用的插件。

jQuery 确实发布了 migration plugin ,它是为开发人员创建的,用于检测他们的插件是否使用了任何贬值的依赖项,例如 $.browser。

虽然这有助于开发人员修补他们的插件。 jQuery 完全放弃了 $.browser,因此在您的开发人员修补或合并上述内容之前,上述修复可能是唯一的解决方案。

关于: jQuery.browser

关于jquery - jQuery $.browser 是否已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638247/

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