Estoy desarrollando JavaScript que debería funcionar con Prototype.js o JQuery, así que necesito alguna forma de identificar cuál es la biblioteca principal en uso. ¿Cómo puedo hacer eso?
Respuesta
Puede comprobar para jQuery así:
if (window.$ === window.jQuery)
Bueno, se puede comprobar la presencia de jQuery:
if(window.jQuery !== "undefined")
{
// jQuery Yay!
}
y luego, si se asigna a $
if(window.jQuery === window.$)
{
// jQuery Yay!
}
Supuestamente significa 'typeof' en el primer ejemplo. – bobince
¿Podría jQuery noconflict ayudar? Entonces podría usar jQuery
para jQuery y $
para prototipo.
@SLaks y @Chacha102 son adecuados para la detección de jQuery, pero si usted quiere asegurarse de que si la función $
no es de jQuery, proviene de PrototypeJS, puede:
if (typeof $ == 'function') {
if ($.fn && $.fn.jquery) { // $.fn.jquery contains the version number
// jquery
} else if (window.Prototype && Prototype.Version) {
// prototype
}
}
Escribir sin dependencia de ningún biblioteca y debería funcionar bien con jQuery y Prototype;)
En serio, ¿no es uno de los puntos principales de esta biblioteca evitar 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, al mirar la documentación de cualquiera de las bibliotecas durante aproximadamente 5 segundos, debería darle una pista sobre qué propiedades tendrá jq $ pt $ no. Esto sugiere que realmente no se ha molestado en observar las diferencias entre los marcos (que obviamente será la mejor manera de diferenciarlos, ¿no?). ¿Estás seguro de que sabes en lo que te estás metiendo?
Como muchos han mencionado:
var whosThatDollarSign = typeof window.$=='undefined' ? 'none' : (window.$==window.jQuery ? 'jQuery' : 'not jQuery')
Votaría esto si no empezaba a tener todo predicar al final. –
No se preocupe, no voy a perder el sueño por eso. –
estoy desarrollando algo de JavaScript que debería funcionar ya sea con Prototype.js o jQuery, por lo tanto necesito alguna manera de identificar cuál es la biblioteca primaria en uso. ¿Cómo puedo hacer eso?
Su pregunta es ambigua, hay dos significados obvios para mí, así que responderé a ambos.
Si quiere decir que quiere escribir código que funcione independientemente de si se han utilizado jQuery o Prototype.js, la respuesta es que es bastante fácil escribir código que funciona independientemente de las bibliotecas que han sido, o serán cargada 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á un script u otro, entonces usted basando su código en una arquitectura muy mala. Ninguna de esas bibliotecas admite una selección particularmente amplia de navegadores y ambas necesitan actualizarse cada vez que sale una nueva versión, incluso de las "populares" que admiten.
Intentar admitir tanto el uso de secuencias de comandos independientes creará un dolor de cabeza de mantenimiento en curso - por dos. O tal vez esa es tu intención.
-
Rob
- 1. ¿Qué algoritmo está detrás del descubrimiento de STL?
- 2. ¿Qué algoritmo de clasificación está detrás de un NSSortDescriptor?
- 3. ¿Cómo detectar si una celda está vacía al leer archivos de Excel utilizando la biblioteca xlrd?
- 4. ASP .NET - ¿Qué está pasando detrás de un Eval()?
- 5. ¿Cómo puedo detectar qué versión de Internet Explorer está instalada?
- 6. ¿Cómo detectar cuando la pantalla está encendida?
- 7. detectar contacto en una vista detrás de otra vista?
- 8. ¿Cómo detectar READ_COMMITTED_SNAPSHOT está habilitado?
- 9. INotifyPropertyChanged: ¿qué ocurre detrás de la escena?
- 10. ¿Cómo puedo detectar qué dispositivo iOS está usando mi usuario?
- 11. ¿Qué está haciendo esta función de Ruby?
- 12. Cómo detectar si un micrófono está presente
- 13. Detectar el argumento que pasa la convención de una función de biblioteca C
- 14. Cómo detectar cuando innerHTML está completo
- 15. función de la función de la biblioteca itertools
- 16. ¿Cuál es la razón detrás de Object.clone() está protegido
- 17. Cómo detectar que MKMapView está disminuyendo/acercándose?
- 18. ¿Cómo detectar cuando un lienzo está listo para la manipulación?
- 19. ¿Dónde está la biblioteca COM de Bonjour?
- 20. Identificación de qué biblioteca del sistema Linux contiene una función
- 21. ¿Cómo saber en qué biblioteca se define una función específica?
- 22. detectar cuando la aplicación está cerrada
- 23. Primefaces - AjaxStatus - Diálogo está detrás de la superposición
- 24. jQuery webcam/flash: ¿Cómo detectar si la webcam está activa?
- 25. La aplicación FastCGI detrás de NGINX no puede detectar que se usa la conexión segura HTTPS
- 26. ¿Cómo detectar que JFrame está cerrado?
- 27. Cómo detectar si numpy está instalado
- 28. ¿Cómo detectar si Vista UAC está habilitado?
- 29. Cómo detectar si el iphone está sincronizado cuando la aplicación no se está ejecutando
- 30. ¿Cuán detrás del original está Lucene.Net?
¿Qué pasa si los dos están cargados? –