我的网页上有一个链接,说'关于'。单击它会加载特定div而不使用jquery .load()
刷新整个页面。这不会更改浏览器地址栏中的URL字符串。
转到www.mydomain.com/?page=about
可以访问同一页面。
所以我想要做的是,当用户点击'about'链接时,页面将按原样加载(使用jquery),但我想更改浏览器地址栏中的URL字符串也是如此有人可以实际复制或书签确切的页面。
是否可以这样做?
答案 0 :(得分:5)
你有两个可能来解决这个问题:
在较新的浏览器中,您可以使用HTML5 history API,它可以更改URL的一部分,也可以更改查询字符串(和路径afaik)。
在不支持此功能的浏览器中,您只能更改片段标识#
而无需重新加载页面(通过location
对象)。这意味着您必须将URL更改为例如
www.mydomain.com/#!page=about
#!
is a convention from Google to make Ajax sites crawlable。由于片段标识符未发送到服务器,您必须使用JavaScript检测它并从服务器加载相应的数据
有jQuery plugins可以帮助您处理此问题。
我会寻找一个好的插件,如果可用的话,可以使用历史API,然后回到基于哈希的解决方案。
如我的评论中所述,您还可以在此处找到更多信息:
答案 1 :(得分:-1)
是的,我是通过
完成的location.hash = 'foo';
您可以更改其他位置属性,不确定它的名称是什么?',可能是查询字符串,获取或类似内容。