Javascript Firefox和window.location.hash

Javascript Firefox和window.location.hash,javascript,ajax,firefox,hash,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 + '/'

我目前正在测试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);
这很有效。我最终得到了这个结果。 “数字/类别”变为“数字/类别/eba38179-d492-4bb9-ba66-1bfa4c3571fb”

但是,如果我手动进入浏览器导航栏并将“#number/categories”更改为#number/categories”,则在运行单击函数时哈希值不会更新

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

提前感谢您的帮助

  • 附加一个
    onhashchange
    事件侦听器以探测哈希更改。对于不支持的浏览器,请使用
    setInterval
    检测更改
  • 如果你能用这样的东西,为什么要重新发明轮子

  • window.location.hash!=window.location.hash+'/'+categoryID
    总是返回
    true
    我猜-这就像检查一些
    x
    x+1
    的不相等性。你知道Dojo中是否有等价的东西吗?