我正在开发一些JavaScript代码,需要同时兼容Prototype.js和JQuery库,因此我需要一种方法来识别使用的主要库。我该如何做到这一点?
我正在开发一些 JavaScript 代码,需要同时兼容 Prototype.js 和 JQuery 库,因此我需要一种方法来识别使用的主要库。我该如何做到这一点?我正在开发一些JavaScript代码,需要同时兼容Prototype.js和JQuery库,因此我需要一种方法来识别使用的主要库。我该如何做到这一点?
我正在开发一些 JavaScript 代码,需要同时兼容 Prototype.js 和 JQuery 库,因此我需要一种方法来识别使用的主要库。我该如何做到这一点?你可以像这样检查是否存在jQuery:
if (window.$ === window.jQuery)
好的,您可以检查是否存在jQuery:
if(window.jQuery !== "undefined")
{
// jQuery Yay!
}
然后,如果它被分配给$
if(window.jQuery === window.$)
{
// jQuery Yay!
}
@SLaks 和 @Chacha102 都是正确的,用于检测jQuery库,但如果您想确保如果$
函数不是来自jQuery,而是来自PrototypeJS,您可以:
if (typeof $ == 'function') {
if ($.fn && $.fn.jquery) { // $.fn.jquery contains the version number
// jquery
} else if (window.Prototype && Prototype.Version) {
// prototype
}
}
$
没有被覆盖。 - SLaks--
罗布
不要依赖任何库来编写它,它应该能够与jQuery和Prototype一起正常工作 ;)
说真的,这些库的主要目的之一不是避免为每个浏览器编写三种不同版本的每行代码吗?编写代码以尝试适应多个库似乎相当愚蠢。
无论如何,看看任何一个库的文档大约5秒钟,就可以给你一个提示,jq $将具有而pt $不会具有哪些属性。这表明您似乎并没有真正关注框架之间的区别(显然这是区分它们的最佳方法,对吧?)。您确定自己知道自己在做什么吗?
正如几位已经提到的:
var whosThatDollarSign = typeof window.$=='undefined' ? 'none' : (window.$==window.jQuery ? 'jQuery' : 'not jQuery')
typeof
。 - bobince