Possible Duplicate:
Modify the URL without reloading the page
Updating address bar with new URL without hash or reloading the page
我的网站完全基于 Ajax 请求,网站内的简单导航仅通过一个页面完成。这意味着当用户单击菜单项时,它不会加载另一个页面,而是加载 HTML 元素内的内容。但是,当用户想要将页面链接到他们的 friend 时,它总是相同的,因为 http://mysite.com/mymainpage.php无论 ajax 拉出什么,都将始终相同。如何修改用户标题?例如,当他们点击“游戏”时,jquery/js/php/html 可以更改浏览器上当前的 URL 地址栏吗?使其变为 http://mysite.com/mymainpage.php?games=true 。然后,用户只需从地址栏中复制站点 URL,它将引导至 Ajax 加载的正确部分。
最佳答案
您可以使用哈希值:
(这就是 gmail 的作用: https://mail.google.com/mail/#inbox 、 https://mail.google.com/mail/#sent )
您可以使用读取哈希值
window.location.hash /* gives "#games" */
或
window.location.hash.substring(1) /* gives "games" */
您可以使用以下方法更改它
window.location.hash="#games"
或
window.location.hash="games"
(看起来可行,但最好使用第一个选项)
然后,每次用户单击链接时,都会更改哈希值并像现在一样加载新页面。
当用户进入您的页面时,检查 URL 中是否有哈希并加载该页面。
您还可以添加 hashchange 事件监听器。请参阅https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/hashchange
编辑:
不,您不能有两个哈希值 ( http://mysite.com/mymainpage.php#games#fashion )
因此,如果用户访问 http://mysite.com/mymainpage.php?games=true ,您应该将他重定向到 http://mysite.com/mymainpage.php#games .
然后你可以将其更改为 http://mysite.com/mymainpage.php#fashion无需重新加载。
关于php - 有什么方法可以在不重新加载的情况下更改 header URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236266/