javascript - plugin - tooltip table bootstrap
¿Cómo detectar qué biblioteca está detrás de la función $? (6)
Estoy desarrollando un JavaScript que debería funcionar con Prototype.js o JQuery, por lo que necesito alguna forma de identificar cuál es la biblioteca principal en uso. ¿Cómo puedo hacer eso?
Tu pregunta es ambigua, hay dos significados obvios para mí, así que responderé ambos.
Si quiere decir que desea escribir código que funcionará independientemente de si se ha usado jQuery o Prototype.js, la respuesta es que es bastante fácil escribir código que funcione independientemente de las bibliotecas que se hayan cargado o se cargarán. Por lo tanto, no es necesario descubrir cuál se ha utilizado.
Si quiere decir que va a escribir dos scripts separados, uno para jQuery y otro para Prototype.js, entonces, dependiendo de cuál "detecte", cargará uno u otro, luego basará su código en Una muy mala arquitectura. Ninguna de esas bibliotecas admite una selección particularmente amplia de navegadores y ambas necesitan actualizarse cada vez que aparece una nueva versión, incluso de las "populares" que admiten.
Intentar admitir ambos usando scripts separados creará un dolor de cabeza de mantenimiento continuo, dos veces. O tal vez esa es tu intención.
-
Robar
Estoy desarrollando un JavaScript que debería funcionar con Prototype.js o JQuery, por lo que necesito alguna forma de identificar cuál es la biblioteca principal en uso. ¿Cómo puedo hacer eso?
¿ Podría ayudar jQuery noconflict ? Entonces podrías usar jQuery
para jQuery y $
para el prototipo.
Bueno, puedes comprobar la presencia de jQuery:
if(window.jQuery !== "undefined")
{
// jQuery Yay!
}
y luego si se asigna a $
if(window.jQuery === window.$)
{
// jQuery Yay!
}
Escríbalo sin depender de ninguna biblioteca y debería funcionar bien tanto con jQuery como con Prototype;)
En serio, ¿no es uno de los puntos principales de esta biblioteca para evitar tener que escribir tres variaciones diferentes de cada línea de código para cada navegador? Escribir código para tratar de adaptarse a más de una biblioteca parece bastante tonto.
De todos modos, mirar la documentación de cualquiera de las bibliotecas durante unos 5 segundos debería darle una pista sobre qué propiedades jq $ tendrá que pt $ no. Esto sugiere que realmente no te has molestado en ver las diferencias entre los marcos (lo que obviamente será la mejor manera de diferenciarlos, ¿no?). ¿Estás seguro de que sabes en lo que te estás metiendo?
Como han mencionado varios:
var whosThatDollarSign = typeof window.$==''undefined'' ? ''none'' : (window.$==window.jQuery ? ''jQuery'' : ''not jQuery'')
Puedes verificar jQuery así:
if (window.$ === window.jQuery)
@SLaks y @Chacha102 son correctos para detectar jQuery, pero si desea asegurarse de que si la función $
no es de jQuery, provenga de PrototypeJS, puede:
if (typeof $ == ''function'') {
if ($.fn && $.fn.jquery) { // $.fn.jquery contains the version number
// jquery
} else if (window.Prototype && Prototype.Version) {
// prototype
}
}