gpt4 book ai didi

javascript - 如何通过 JavaScript 处理 URL 更改

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:33:42 25 4
gpt4 key购买 nike

我知道在现代浏览器中,我可以像这样静静地更改 URL(无需重新加载页面):

window.history.pushState(“object or string”, “Title”, “/new-url”);

但我希望能够检测到 URL 中的更改。当用户在地址栏中输入新 URL 时,我该如何处理事件并防止页面重新加载?

附言我知道我可以使用 onhashchange 但我只是不想使用哈希 :)

最佳答案

Event when window.location.href changes 中所述没有轮询是不可能的。那是 2010 年。也许与此同时有针对 HTML5 浏览器的解决方案。

可能您已经知道,不使用 hashchange 在服务器端、抓取、404 检测等方面存在缺陷,...

但使用散列也有缺点,尤其是当涉及到通过邮件发送的深层链接时(重定向不传输散列,通常由 webmail 客户端使用以获得干净的引用)。

我建议为 url-routing 和 history API 使用经过测试的库。我确定您可以在 microjs.com 找到一个, JSterJSDB.IO .有许多可以在 MSIE 等禁用浏览器上进行优雅的回退。

我最好的选择是 history.jsCrossroads.js (与 Hasher)。

如果您已经使用了 Backbone.js、AngularJS、Ember 等 MVC 框架,您将免费获得您想要的。

毕竟,当 location.href 发生变化时,我不太确定这些库中的任何一个是否能够抑制(单个)页面的重新加载。由于您失去了大部分状态,因此我会使用#hashes。恕我直言,单页应用程序的用户不应更改浏览器位置,而应使用您应用程序的导航选项。

关于javascript - 如何通过 JavaScript 处理 URL 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com