本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Modify the URL without reloading the page
Updating address bar with new URL without hash or reloading the page
我的站点完全基于Ajax请求,站点内的简单导航只从一个页面完成。这意味着当用户单击菜单项时,它不会加载另一个页面,而是加载HTML元素中的内容。但是当一个用户想要将一个页面链接到他们的朋友时,它总是一样的,因为无论Ajax拉了什么,http://mysite.com/mymainpage.php总是一样的。如何修改用户标题?例如,当他们单击"游戏"时,jquery/js/php/html是否可以更改浏览器上的当前URL地址栏?所以它变成了http://mysite.com/mymainpage.php?游戏=真。然后,用户只需从地址栏复制站点URL,它将引导到正确的部分,以便Ajax加载。
哈希答案正确。然而,实施它是……很难。看看jquery的一个不错的插件。
您可以使用哈希:
http://mysite.com/mymainpage.php
http://mysite.com/mymainpage.php游戏
(Gmail就是这样做的:https://mail.google.com/mail/收件箱,https://mail.google.com/mail/已发送)
您可以使用
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而不需要重新加载。
太好了,谢谢!有没有办法清除当前哈希?比如,如果原始页面已经有mysite.com/mymainpage.php?games=true执行此代码会使mysite.com/mymainpage.php games变得时尚