情况:
url: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键而没有任何更改。
当浏览器网址带有主题标签时,不会重新启动该网页。 document.ready
没有被解雇,我也没有得到任何控制台消息。
当浏览器网址没有主题标签时,页面会重新启动并触发document.ready
。
是否有人对此行为有解释并且可以捕获它以便在情境1中页面确实被重新加载? 那里有文件,因为我似乎找不到任何文件?
答案 0 :(得分:2)
这是理想的行为。如果您的URL包含哈希字符串,则不应该启动整页刷新。
向URL添加哈希表示您要在页面中导航,而不是导航到新页面。单击“刷新”按钮表示您要重新请求文档。在URL栏上按Enter键并单击刷新是非常不同的事情。