javascript - 历史状态和更改网址栏上的网址

标签 javascript html5-history

HTML5 为 manipulate the browser history 引入了一些非常的简洁工具,即 history.pushState/replaceState 方法和 onpopstate 事件,所以我们不必依赖 location.hash es 为我们的网络应用程序显示一个有意义的 url。

(或者更好的是,当 IE<10 的采用可以忽略不计时,我们不会必须依赖哈希。)

如果目标状态是使用 history.pushState 创建的,即使 URL 看起来完全不同,使用浏览器的后退和前进按钮也不会重新加载页面。

但是,与更改哈希不同,如果用户从浏览器的地址栏更改 url,浏览器重新加载页面。不知何故,我怀疑对此是否有有效的解决方案,但问题是:是否有办法阻止浏览器重新加载页面,并强制它推送历史状态?

最佳答案

我不这么认为。 AFAIK,在地址栏中手动输入地址 - 与单击链接、后退/前进按钮、pushstate/popstate 和表单提交不同 - 被定义为请求新页面,除非您更改哈希(就像在 html5 之前的日子里) ).

关于javascript - 历史状态和更改网址栏上的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18081068/

相关文章:

c# - 如何对页面的某个部分进行实时更新?

javascript - 为什么 window.history.back() 会跳回两个状态?

javascript - 使用连接历史记录 api 回退进行 url 重写

javascript - Pathjs路由问题

javascript - HTML5 历史 API : cannot go backwards more than once

javascript - 如何在页面 Javascript 准备好处理 AJAX-y 链接之前禁用它们?

javascript - 如何恢复由 javascript 对 css 所做的更改

javascript - 如果值不为 true,则继续执行下一个 else

meteor - Iron Router 重定向而不杀死后退按钮功能

javascript - 如何使用 node.js 驱动程序复制 mongodb 集合?