Javascript:如何在不刷新页面的情况下更改地址栏中的 URL?
我注意到 GMail 和 GrooveShark 等网络应用程序可以更改浏览器地址栏中的 URL,而无需刷新页面。 Ajax显然是用来改变内容的。如何更改网址?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我注意到 GMail 和 GrooveShark 等网络应用程序可以更改浏览器地址栏中的 URL,而无需刷新页面。 Ajax显然是用来改变内容的。如何更改网址?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
Gmail 和 Grooveshark 仅更改哈希值,这是通过更改来完成的:
如果您的目标是支持 HTML5 的浏览器,则可以使用 window.history.pushState 和 window.history.popState,请参阅 http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page
Gmail and Grooveshark only change the hash, this is done by changing:
If you target HTML5 enabled browsers, you can use window.history.pushState and window.history.popState, see http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page
您可能想查看 HTML5 推送状态。我知道 iQuery Mobile 正在使用此功能来修改位置 URL,而不触发页面加载,这可能是适合您的解决方案。
https://developer.mozilla.org/en/DOM/Manipulated_the_browser_history
以下是其工作原理的示例:
You may want to look into HTML5 push state. I know iQuery Mobile is using this feature to modify the location URL without triggering a page load and it might be the right solution for you.
https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
Here is an example of how it works: