Asual jQuery Address在Firefox中有错误吗?

ski*_*boo 11 firefox jquery jquery-address

这是我使用jQuery Address的第二个项目,我认为Firefox有些奇怪,或者至少我可以发现它在Firefox和Webkit中有不同的行为.

深度链接时,jQuery Address应触发change事件并执行与此状态相关的JavaScript.

对于/ foo/bar深层链接,如果我将事件对象写入控制台,在Google Chrome中,我有两个事件被触发:

jQuery.Event#1

path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
Run Code Online (Sandbox Code Playgroud)

jQuery.Event#2

path: "/foo/bar"
pathNames: Array[2]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/foo/bar"
Run Code Online (Sandbox Code Playgroud)

但是在Firefox中,我只触发了一个事件,它没有考虑当前的URI:

jQuery.Event#1

path: "/"
pathNames: Array[0]
queryString: ""
timeStamp: 1335431580471
type: "change"
value: "/"
Run Code Online (Sandbox Code Playgroud)

很明显在Firefox中,我想为/ foo/bar URI打开的灯箱永远不会打开:-(

这是我的jQuery地址代码:

$.address.crawlable(1).state('/').change(function(event) {
    var page = event.path;
    if (page == '/foo/bar'){
        openLightbox($('#create-popup-template').html());
        create_main();
    }
});    
Run Code Online (Sandbox Code Playgroud)

现在我使用一个简单的解决方法使其在Firefox中工作,只需添加一个init函数来强制在Firefox中进行第二次更改事件:

$.address.init(function(){
    if ($.browser.mozilla)
         $.address.value(window.location.pathname);
 });
Run Code Online (Sandbox Code Playgroud)

但这是我第二次这样做,感觉不对..我错过了什么吗?

我也已经试图搞砸了内部和外部的变化回调,没有机会..

谢谢你的帮助,

托马斯.

Hug*_*sse 0

我使用 Asual jQuery Adress 插件 1.6,您可以在这里找到它:在此处输入链接描述,而不是在 Asual 网站上。

在这个版本中,他们删除了可抓取功能(但可以正常被Google抓取)。另外,您可以使用http://refresh-sf.com/yui/对其进行压缩

所以这可能是1.5版本的bug