这是我第二个使用jQuery Address的项目,我认为Firefox有些奇怪,或者至少我可以发现它在Firefox和Webkit中有不同的行为。Asual jQuery地址在Firefox中是越野车吗?
深度链接时,jQuery地址应触发更改事件并执行与此状态相关的JavaScript片段。
对于/富/酒吧深层链接,如果我的事件对象写下来到控制台,在谷歌浏览器,我有两个事件触发:
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"
但在Firefox中,我只有一个触发的事件,这并不需要我ñ考虑当前URI:
jQuery.Event#1
path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
所以,很显然在Firefox中,我要以打开/富/酒吧URI是永远不会打开:-(灯箱
这里是我的jQuery地址码:
$.address.crawlable(1).state('/').change(function(event) {
var page = event.path;
if (page == '/foo/bar'){
openLightbox($('#create-popup-template').html());
create_main();
}
});
现在我使用的是简单的解决方法,使其在Firefox的工作,只是增加一个初始化福nction强制在Firefox中第二个变化事件:
$.address.init(function(){
if ($.browser.mozilla)
$.address.value(window.location.pathname);
});
但它一直是我第二次必须这样做,并没有觉得不对劲..我这么想吗?
我也已经尝试过搞砸了与内部和外部的变化回调,根本没有机会..
感谢您的帮助,
托马斯。