使用jQuery更改浏览器地址栏URL

时间:2012-02-29 10:48:57

标签: ajax jquery

是否可以直接使用jQuery更改浏览器地址栏中的URL而无需刷新页面或重定向到更改的网址?

或者由于安全问题,这是不可能的?

例如,我有一个jquery.ajax驱动的列表,因此没有帖子后退/屏幕刷新。该列表具有分页元素。因此,对于第一页,浏览器地址栏中的URL为:

http://company/list.php?page=1

如果我从列表的分页部分点击第2页,它将显示基于第2页的列表,但由于这是在没有刷新/回发的情况下发生的ajax样式,因此浏览器URL保留在

http://company/list.php?page=1

我希望能够将其更改为

http://company/list.php?page=2

没有回发/重定向到新网址

这不可能吗?

2 个答案:

答案 0 :(得分:17)

这只能在更现代的浏览器中完成(Chrome,Safari,FF4 +和IE10pp3 +)

有关如何操作的信息,请参阅此问题:Updating address bar with new URL without hash or reloading the page

答案 1 :(得分:6)

也许经过一些修改后,您可以使用Fragment Identifier aka Hash(网址中的#符号)更改(部分)网址而不更改网页。

通常,这用于自动将用户导航到页面中的某个章节或将控件初始化为特定状态。例如,在选项卡控件中自动选择正确的选项卡。 Ben Alman有一个example(使用jQuery BBQ)。