Any way to change the header URL without reloading?
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加载。
您可以使用哈希:
http://mysite.com/mymainpage.php
http://mysite.com/mymainpage.php游戏
(Gmail就是这样做的:https://mail.google.com/mail/收件箱,https://mail.google.com/mail/已发送)
您可以使用
1 |
或
1 |
你可以用
1 |
或
1 |
(似乎可行,但最好使用第一个选项)
然后,每次用户单击一个链接时,像现在这样更改散列并加载新页面。
当用户进入您的页面时,检查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而不需要重新加载。