我的站点完全基于 Ajax 请求,站点内的简单导航仅从一个页面完成。这意味着当用户单击菜单项时,它不会加载另一个页面,而是加载 HTML 元素内的内容。但是当用户想要将一个页面链接到他们的朋友时,它总是一样的,因为http://mysite.com/mymainpage.php总是一样的,不管 ajax 拉起什么。如何修改用户标题?例如,当他们单击“游戏”时,jquery/js/php/html 可以更改浏览器上的当前 URL 地址栏吗?这样它就变成了http://mysite.com/mymainpage.php?games=true。然后用户可以从地址栏中复制站点 url,它将导致 ajax 加载的正确部分。
问问题
2836 次
1 回答
4
您可以使用哈希:
(这就是 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而无需重新加载。
于 2012-09-02T13:26:05.567 回答