使用#hash从地址栏刷新页面

时间:2013-05-06 17:25:45

标签: javascript page-refresh hashtag

情况:

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键而没有任何更改。

  1. 当浏览器网址带有主题标签时,不会重新启动该网页。 document.ready没有被解雇,我也没有得到任何控制台消息。

  2. 当浏览器网址没有主题标签时,页面会重新启动并触发document.ready

  3. 是否有人对此行为有解释并且可以捕获它以便在情境1中页面确实被重新加载? 那里有文件,因为我似乎找不到任何文件?

1 个答案:

答案 0 :(得分:2)

这是理想的行为。如果您的URL包含哈希字符串,则不应该启动整页刷新。

向URL添加哈希表示您要在页面中导航,而不是导航到新页面。单击“刷新”按钮表示您要重新请求文档。在URL栏上按Enter键并单击刷新是非常不同的事情。