2012-03-29 17 views
9

Estoy creando un script en JS que se llamará a partir de los sitios externos, pero mi código requiere jQuery para trabajar, especialmente 1.7 y 1.8 para la interfaz de usuario, he encontrado una manera de comprobar si se ha instalado jQuery y obtener la versión:¿Cómo puedo detectar si Jquery y Jquery UI están instalados, y qué versiones están instaladas?

$().jquery 

Pero esto me devolverá una cadena con puntos (1.6.1); ¿Ya hay una función para verificar si la versión instalada es anterior a la que necesitaba?

que también necesitan la misma interfaz de usuario de la biblioteca, me encontré con esto, pero no estoy muy seguro si funciona correctamente, o tal vez no sé cómo o usarlo:

//Get version: 
$.ui.version 
//Comnpare version 
var version_required = 1.7.1 
version = $.ui ? $.ui.version || "pre "+version_required : 'not found'; 

Gracias

Respuesta

15

Esto podría funcionar para usted:

if (typeof jQuery != 'undefined' && /[1-9]\.[7-9].[1-9]/.test($.fn.jquery)) { 
    // jQuery is loaded and is at least version 1.7.1 
} 

del mismo modo, es casi lo mismo para la interfaz de usuario:

if (typeof jQuery.ui != 'undefined' && /[1-9]\.[7-9].[1-9]/.test($.ui.version)) { 
    // jQuery UI is loaded and is at least version 1.7.1 
} 

Primero comprueba para asegurarse de que jQuery está disponible y luego usa un patrón de expresiones regulares simple para probar que los números de versión se encuentran dentro de un rango aceptable.

+1

Muy elegante. Sin embargo, debes realizar la prueba de expresiones regulares aún utilizando 'jQuery', ya que no hay garantía de que' $ 'en realidad sea el objeto jQuery. Podría sobrescribirse o podría haberse llamado a 'jQuery.noConflict()'. ver http://api.jquery.com/jQuery.noConflict/ –

+0

Esto funcionó bastante bien, ¡muchas gracias! –

Cuestiones relacionadas