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

标签 javascript page-refresh hashtag

情况:

网址: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 有 hashtag 时,页面不会重新启动。 document.ready 没有被触发,我也没有收到任何控制台消息。

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

是否有人对此行为有解释,是否可以捕获它以便在情况 1 中重新加载页面? 某处是否有文档,因为我似乎找不到任何文档?

最佳答案

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

向 URL 添加散列表示您要在页面内导航,而不是导航到新页面。单击“刷新”按钮表示您要重新请求文档。在 URL 栏上按 Enter 和点击刷新是完全不同的事情。

关于javascript - 使用#hash 从地址栏刷新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16403908/

相关文章:

jquery - 如何使用 jquery.linkify 插件链接 @usernames 和 #hashtags

python - Twitter api 在推文中搜索主题标签

javascript - 如何在不在新选项卡中打开同一页面的情况下使用javascript刷新另一个页面

jsf - 关闭p:dialog后如何刷新页面

javascript - 使用浏览器后退按钮时如何强制重新加载页面?

javascript - 亚马逊 lambda : "Handler ' handle' missing on module 'exports' "

python - Django 在字符串中查找主题标签并通过将其包装在 <a> 标签中来替换它

javascript - Gmail API 预设回复

javascript - 找到最接近的输入和设置值

javascript - 通过 GET 请求启动文件下载