【发布时间】:2011-09-12 20:10:50
【问题描述】:
我在 URL 片段中存储了一些状态信息(散列,不管你怎么称呼它)。当我在 Chrome 和 Safari 中更改 window.location.hash 时,页面不会重新加载 - 这是我想要的行为。当我在 Firefox 中更改 window.location.hash 时,我会重新加载页面。如何防止这种情况发生?
注意:我在 URL 中存储状态的原因是 userA 可以将 url 发送给 userB,而 userB 将能够看到相同的页面(由 AJAX 加载)。
解决方案:无论如何,在 Firefox 中(仅?)如果您完全删除包含“#”字符的哈希,页面将重新加载。我最终只是确保不要删除整个哈希。
【问题讨论】:
-
使用
preventDefault? -
我建议寻找另一种方法来存储/缓存状态信息,而不是使用
window.location方法,例如 cookie 或 javascriptvar. -
您可能需要提供更多信息和测试页。我从未在 Firefox 中看到过这种行为。例如,使用 FF 转到unicodinator.com 并单击任何字符——您应该会看到哈希更改但没有重新加载页面(至少,这是我测试过的所有机器上发生的情况,使用 FF 4 和 FF 3.6) .这使用 document.location.hash 来更改哈希。
-
@pixelbobby 见上面帖子中的注释
-
是的,这是一个很酷的效果。我明白你想做什么;或多或少是
bookmark。我检查了 chrome 调试器中的代码。我会在下面发一个帖子。
标签: javascript