【发布时间】:2013-05-06 17:25:44
【问题描述】:
情况:
网址:http://mydomain.com/test.html#somehash
测试脚本:
$(document).ready(function () {
console.log("page initiated");
if (window.location.hash) {
console.log("hash changed (if-statement)");
}
$(window).on("hashchange", function () {
console.log("hash changed (on statement)");
});
});
该脚本也可以在fiddle上找到,但环境不适合显示该行为。
我遇到的问题是当我单击浏览器地址栏并按 Enter 键而不做任何更改时。
当浏览器 url 有标签时,页面不会重新启动。
document.ready没有被解雇,我也没有收到任何控制台消息。当浏览器 url 没有主题标签时,页面会重新启动并触发
document.ready。
是否有人对此行为有解释,是否可以捕获它以便在情况 1 中重新加载页面? 某处是否有文档,因为我似乎找不到任何文档?
【问题讨论】:
-
这是理想的行为。如果您的 URL 包含哈希字符串,则不应启动整页刷新。
-
我有点震惊。这是在某处记录的吗?是否有特定的理由将其呈现为所需的行为?当我点击浏览器菜单上的“刷新”按钮时,我会正常刷新。
-
向 URL 添加哈希表示您的意思是在页面内导航,而不是导航到新页面。单击“刷新”按钮表示您要重新请求文档。在 URL 栏上按 Enter 和单击刷新是完全不同的事情。
-
@meager - 感谢您的意见。我想“页面内的导航”为我清除了它。尤其是在进行编程时,我可能会在上述场景中刷新并期望页面刷新。很高兴知道这一点。
-
@meager - 你能否添加一个答案或告诉我如何关闭这个问题作为回答?
标签: javascript page-refresh hashtag