Firefox和window.location.hash

时间:2011-03-16 22:10:23

标签: javascript ajax firefox hash

我正在测试firefox 3.6.15中的一个AJAX应用程序,它在我需要页面不重新加载时使用window.location.hash更改导航。

我有一个链接可以做到这一点:

var editCategoryClick = (function (categoryID) {
                return function () {
                    if (window.location.hash != window.location.hash + '/' + categoryID) {
                        window.location.hash = window.location.hash + '/' + categoryID;
                    }
                }
            })(category.ID);

这很有效。我最终得到了这个结果。 '#numbers / categories'变为'#numbers / categories / eba38179-d492-4bb9-ba66-1bfa4c3571fb'

但是,如果我手动进入浏览器导航栏并将“#numbers / categories”更改为#numbers / categoriesX',则运行点击功能时哈希不会更新。

我在测试chrome,safari,ie9,ie8的任何其他浏览器中都没有这个问题。只有firefox表现出这种行为。我知道这是一个罕见的案例,但它仍然是一个用户体验问题。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 附加onhashchange事件侦听器以探测哈希更改。对于不受支持的浏览器,请使用setInterval检测更改。
  2. 如果可以使用jQuery History之类的东西,为什么要重新发明轮子?