Fancybox rompe con el nuevo jQuery v1.9.0.
Afecta tanto a Fancybox v1.3.4 como a continuación, y a la versión 2.1.3 y a continuación.
Los errores mostrados son:
v1.3.4:
Timestamp: 15/01/2013 10:03:28 AM
Error: TypeError: b.browser is undefined
Source File: ...fancybox/jquery.fancybox-1.3.4.pack.js
Line: 18
... otros errores
Uncaught TypeError: Cannot read property 'msie' of undefined jquery.fancybox-1.3.4.pack.js:18
Uncaught TypeError: Object [object Object] has no method 'fancybox'
En v2.1.3:
Timestamp: 15/01/2013 10:09:58 AM
Error: TypeError: $.browser is undefined
Source File: h.../fancybox2.1.3/jquery.fancybox.js
Line: 139
Si está usando esto para llamar a jQuery:
<script src="http://code.jquery.com/jquery-latest.js"></script>
... ¡¡ Cualquiera de sus implementaciones de fancybox existentes fallará !!

jquery-latest.jsen producción!Respuestas:
Parece que existe un error en jQuery informado aquí: http://bugs.jquery.com/ticket/13183 que rompe el script Fancybox.
También consulte https://github.com/fancyapps/fancyBox/issues/485 para obtener más referencias.
Como solución alternativa, retroceda a jQuery v1.8.3 mientras se corrige el error de jQuery o se repara Fancybox.
ACTUALIZACIÓN (16 de enero de 2013): Fancybox v2.1.4 ha sido lanzado y ahora funciona bien con jQuery v1.9.0.
Para fancybox v1.3.4, aún necesita retroceder a jQuery v1.8.3 o aplicar el script de migración como se indica en la respuesta de @ Manu.ACTUALIZACIÓN (17 de enero de 2013): solución para los usuarios de Fancybox v1.3.4 :
Parchear el archivo js FancyBox para que funcione con jQuery v1.9.0 de la siguiente manera:
Busque alrededor de la línea 29 donde dice:
y reemplácelo por ( EDITADO el 19 de marzo de 2013: filtro más preciso):
ACTUALIZACIÓN (19 de marzo de 2013): También reemplace
$.browser.msiepornavigator.userAgent.match(/msie [6]/i)alrededor de la línea 615 (y / o reemplace todas las$.browser.msieinstancias, si corresponde), gracias joofow ... ¡eso es!O descargue la versión ya parcheada de AQUÍ (ACTUALIZADO el 19 de marzo de 2013 ... gracias fairylee por señalar el corchete de cierre adicional)
NOTA : este es un parche no oficial y no es compatible con el autor de Fancybox, sin embargo, funciona como está. Puede usarlo bajo su propio riesgo;)
Opcionalmente, puede revertir a jQuery v1.8.3 o aplicar el script de migración como se indica en la respuesta de @ Manu.
fuente
/msie [6]/i? - La clase de carácter[6]es exactamente equivalente al carácter6, es decir, sin los corchetes. Eso no inspira mucha confianza en el código…: /[6-8]y en este caso fue como[6], al final es solo una convención de sintaxis. De todos modos, si son "exactamente equivalentes", ¿cómo afecta esto la confianza en el código?!?! Si el resultado con o sin paréntesis fue diferente y eso da lugar a confusión, entonces estaría de acuerdo con usted, de lo contrario, no veo su comentario "... no inspira confianza ..." muy constructivo en absoluto. Prefiero animarle a que publique su propia respuesta "inspiradora de confianza".Hola, esto se debe a la nueva versión de jQuery => 1.9.0
puede consultar la actualización: http://blog.jquery.com/2013/01/15/jquery-1-9-final-jquery-2-0-beta-migrate-final-released/
jQuery.Browser está obsoleto. puede mantener la última versión agregando un script de migración: http://code.jquery.com/jquery-migrate-1.0.0.js
reemplazar:
por:
en su página y su funcionamiento.
fuente
Los eventos globales también están en desuso.
Aquí hay un parche, que corrige los problemas del navegador y del evento:
fuente
En caso de que alguien todavía tenga que admitir el fancybox heredado con jQuery 3.0+, aquí hay algunos otros cambios que deberá realizar:
.unbind () obsoleto
Reemplazar todas las instancias de
.unbindcon.off.removeAttribute () no es una función
Cambie las líneas 580-581 para usar jQuery en su
.removeAttr()lugar:Código antiguo:
Nuevo código:
Esto combinado con el otro parche mencionado anteriormente resolvió mis problemas de compatibilidad.
fuente