任何方式来更改标题URL而不重新加载?

可能重复:
修改网址而不重新加载页面
使用新的URL更新地址栏而不散列或重新加载页面

我的网站完全基于Ajax请求,并且网站内的简单导航仅从一个页面完成。 这意味着当用户点击菜单项时,它不会加载另一个页面,而是将内容加载到HTML元素中。 但是,当一个用户想要将一个页面链接到他的朋友时,它永远都是一样的,因为无论ajax如何启动,http://mysite.com/mymainpage.php将始终保持不变。 我如何修改用户头部? 例如,当他们点击“游戏”时,jquery / js / php / html可以在浏览器上更改当前的URL地址栏吗? 以便它变成http://mysite.com/mymainpage.php?games=true。 然后,用户可以从地址栏中复制网站网址,并导致正确的部分加载ajax。


你可以使用散列:

  • http://mysite.com/mymainpage.php

  • http://mysite.com/mymainpage.php#games

  • (这就是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,无需重新加载。

    链接地址: http://www.djcxy.com/p/70299.html

    上一篇: Any way to change the header URL without reloading?

    下一篇: How to change the url without reloading?