我怎么会有 JavaScript可能对当前页面产生一些影响但也会更改浏览器中的 URL 的操作,所以如果用户点击重新加载或书签,那么使用新的 URL?
如果后退按钮可以重新加载原始 URL,那就太好了。
我正在尝试在 URL 中记录 JavaScript 状态。
最佳答案
如果您希望它在尚不支持 history.pushState
和 history.popState
的浏览器中工作,“旧”方法是设置片段标识符,这不会导致页面重新加载。
基本思想是将 window.location.hash
属性设置为包含您需要的任何状态信息的值,然后使用 window.onhashchange event ,或者对于不支持 onhashchange
的旧浏览器(IE < 8,Firefox < 3.6),定期检查哈希是否已更改(例如使用 setInterval
)并更新页面。您还需要检查页面加载时的哈希值以设置初始内容。
如果您使用 jQuery,则有 hashchange plugin这将使用浏览器支持的任何方法。我相信其他库也有插件。
需要注意的一点是与页面上的 id 冲突,因为浏览器会滚动到任何具有匹配 id 的元素。
关于javascript - 更改浏览器中的 URL 而不使用 JavaScript 加载新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/136458/