2012-04-26 63 views
11

这是我第二个使用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); 
}); 

但它一直是我第二次必须这样做,并没有觉得不对劲..我这么想吗?

我也已经尝试过搞砸了与内部和外部的变化回调,根本没有机会..

感谢您的帮助,

托马斯。

回答

0

我使用Asual jQuery Adress插件1.6,你可以在这里找到:enter link description here而不是在Asual网站上。

在这个版本中,他们删除了可抓取的功能(但它可以被Google正常抓取)。此外,你可以压缩它http://refresh-sf.com/yui/

所以这可能是一个1.5版本的bug