情况:
网址: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 上找到, 但环境不适合显示该行为。
我遇到的问题是,当我单击浏览器地址栏并按回车键时没有任何更改。
当浏览器 url 有 hashtag 时,页面不会重新启动。
document.ready
没有被触发,我也没有收到任何控制台消息。当浏览器 url 没有主题标签时,页面会重新启动并触发
document.ready
。
是否有人对此行为有解释,是否可以捕获它以便在情况 1 中重新加载页面? 某处是否有文档,因为我似乎找不到任何文档?
最佳答案
这是期望的行为。如果您的 URL 包含哈希字符串,则不应启动整页刷新。
向 URL 添加散列表示您要在页面内导航,而不是导航到新页面。单击“刷新”按钮表示您要重新请求文档。在 URL 栏上按 Enter 和点击刷新是完全不同的事情。
关于javascript - 使用#hash 从地址栏刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403908/