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

Page refresh from address bar with #hash

本文关键字:刷新 地址栏 #hash 使用      更新时间:2023-09-26

情况:

网址: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上找到,但环境不适合显示行为。

我遇到的问题是,当我点击浏览器地址栏并在没有任何更改的情况下点击回车键时。

  1. 当浏览器url有一个标签时,页面不会重新启动。document.ready没有被解雇,我也没有收到任何控制台消息。

  2. 当浏览器url没有标签时,页面将重新启动,并触发document.ready

有人对这种行为有解释吗?是否可以捕捉到这种行为,以便在情况1中重新加载页面?某个地方有文件吗,因为我似乎找不到任何文件?

这是所需的行为。如果你的URL包含一个散列字符串,它就不应该启动一个完整的页面刷新。

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