Este es mi segundo proyecto usando jQuery Address, y creo que hay algo raro con Firefox, o al menos puedo descubrir que tiene un comportamiento diferente en Firefox y Webkit.Asual jQuery Address tiene errores en Firefox?
Cuando la vinculación profunda, jQuery Address debe desencadenar un evento de cambio y ejecutar la pieza de JavaScript relacionada con este estado.
Por/foo/bar enlace profundo, si anoto el objeto de evento a la consola, en Google Chrome, tengo dos eventos disparados:
jQuery.Event # 1
path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
jQuery.Event # 2
path: "/foo/bar"
pathNames: Array[2]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/foo/bar"
Pero en Firefox, sólo tengo un evento disparado, que no toma i n cuenta la actual URI:
jQuery.Event # 1
path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
Así que, obviamente en Firefox la luz que yo quiero abrir para el foo/bar/URI nunca va a abrir :-(
Aquí está mi código para la dirección de jQuery:
$.address.crawlable(1).state('/').change(function(event) {
var page = event.path;
if (page == '/foo/bar'){
openLightbox($('#create-popup-template').html());
create_main();
}
});
por ahora estoy usando una solución simple para hacer que funcione en Firefox, simplemente añadiendo un fu init nción para forzar un segundo evento de cambio en Firefox:
$.address.init(function(){
if ($.browser.mozilla)
$.address.value(window.location.pathname);
});
Pero ha sido la segunda vez que tengo que hacer esto y no se siente bien .. me estoy perdiendo algo?
También Ya he intentado echar a perder con los cambios internos y externos devoluciones de llamada, sin posibilidad ..
Gracias por ayudar,
Thomas.