Javascript 查询字符串是否存在类似hashchange的事件?

Javascript 查询字符串是否存在类似hashchange的事件?,javascript,query-string,Javascript,Query String,我一直在使用哈希在页面之间传递数据(如设置scrollTop(),等等),还使用hashChange事件触发给定页面上的更改 然而,散列有我不一定感兴趣的默认行为,比如使页面跳转到给定的(有时无关紧要的)位置 我觉得获取/设置查询字符串更符合逻辑,但是: 是吗 设置查询字符串时,是否有可以侦听的事件 是否有我应该知道的查询字符串相关行为 这取决于你在做什么 查询字符串更改将始终触发页面重新加载。URL中唯一可以在不重新加载页面的情况下更改的部分是#-部分 在javascript应用程序中,页面加

我一直在使用哈希在页面之间传递数据(如设置
scrollTop()
,等等),还使用
hashChange
事件触发给定页面上的更改

然而,散列有我不一定感兴趣的默认行为,比如使页面跳转到给定的(有时无关紧要的)位置

我觉得获取/设置查询字符串更符合逻辑,但是:

  • 是吗

  • 设置查询字符串时,是否有可以侦听的事件

  • 是否有我应该知道的查询字符串相关行为


  • 这取决于你在做什么

    查询字符串更改将始终触发页面重新加载。URL中唯一可以在不重新加载页面的情况下更改的部分是#-部分

    在javascript应用程序中,页面加载通常是不正常的。但是,在使用传统的html页面请求/响应模型时,也可以使用它


    虽然没有事件,因为它会更改页面。

    正如另一个答案所说,更改查询字符串将导致页面重新加载。就浏览器而言,您将进入一个全新的页面

    当您执行此操作时,会触发一些事件。“beforeunload”事件将触发,但它不是很有用,因为当用户单击链接或关闭窗口时,它也会触发

    实际上,如果更改查询字符串,将触发的事件将是它加载的新页面上的加载事件

  • 重塑锚定行为是不合逻辑的。最好不要将散列链接暴露给无关紧要的片段(尽管现代浏览器对任何具有
    id
    的元素都执行
    scrollIntoView()
    ,但是
  • 另外,在使用querystring时: