2

可能重复:
在 js 中处理 URL 锚点更改事件
如何像 GitHub 一样进行令人敬畏的无刷新页面更改

在我的应用程序中,我使用这个非常简单的代码来添加主题标签:

         <a href='#test'> <input type='submit'></input>

当我按下后退按钮时,我希望页面刷新。目前,它只从 www.mysite.com/#test 到 www.mysite.com。

我看到了关于这个主题的不同问题,但我没有找到如何做到这一点。

谢谢您的帮助。

4

2 回答 2

3

一种简单的方法是等待哈希更改事件发生,然后对其做出反应。每当 # 更改时,将调用该函数,如果哈希为空,则将重新加载页面。

window.addEventListener('hashchange', function() {
  console.log(window.location.hash);

  if('' === window.location.hash) {
    console.log('reload');
    //window.location.reload();
  }
});

http://jsfiddle.net/kcKLE/1/

我建议使用 jQuery 之类的库来进行事件绑定,因为 addEventListener 在任何浏览器中都不起作用。(你好 IE) https://developer.mozilla.org/en/docs/DOM/element.addEventListener

如果你需要更高级的东西,还有一个历史 API。 https://developer.mozilla.org/en-US/docs/DOM/Manipulating_the_browser_history

于 2013-01-05T20:45:31.767 回答
0

我刚刚找到了如何做到这一点。我正在使用 onhashchange 功能。这是我的代码:

    document.body.setAttribute("onhashchange", "update()");
         function update() {
            if('' === window.location.hash) {
                 window.location.reload();
          }

      };

所以当我按下后退按钮时,哈希消失并且页面重新加载。

谢谢大家的提示。

于 2013-01-05T21:06:12.810 回答