javascript更改get参数而不重定向

时间:2009-09-28 17:00:22

标签: javascript jquery url redirect

如何在不重定向的情况下更改get参数?

parent.location.search = "?after=20"; 
// ok that changes, but also redirect to the new page

任何解决方案?或者答案是否定的,如果不是,请写下大号。

6 个答案:

答案 0 :(得分:10)

更新

由于这是已接受的答案,不再为真,请参阅this duplicate question以获取最新信息。

原始答案如下:


NO

您可以使用可以通过hash对象的location属性访问的网址的锚点部分来接近

parent.location.hash = "whatever value you want";

答案 1 :(得分:6)

如果您的目标是使用查询字符串来存储以后可以从书签中恢复的状态,则应该使用锚点。

但是,如果必须因某种原因更改查询字符串,实际上有一种方式。但是,我并不赞同这一点。我只是提到它的完整性。

当服务器返回204 No Content响应时,大多数浏览器都不会做任何事情 - 即甚至不会尝试转换到其他页面甚至擦除当前页面。您可以做的是,当对刚刚提供的同一页面发出请求时,后端只会发出204响应,并且查询参数会发生变化。

答案 2 :(得分:4)

到目前为止,答案是

至少在HTML5中,这意味着所有主流浏览器(IE10 +)
Does Internet Explorer support pushState and replaceState?
http://caniuse.com/#feat=history

您还可以在另一个问题上查看我的答案:
How can I change the page URL without refreshing the page?

答案 3 :(得分:1)

呃,不 - 如果您更改了URL参数,您的浏览器将加载新页面。

答案 4 :(得分:1)

如果没有从服务器重新加载页面,你不能改变查询字符串(即用星号标记的部分)。但是,您可以使用http://www.example.com/page.html#anchorname之类的页面锚点来影响网址,而无需从服务器重新加载页面。

答案 5 :(得分:0)

你不能这样做,因为如果你可以这样做会带来安全风险......如果页面可以改变URL栏中的值,那么网络钓鱼者可以轻松地将该值更改为似乎是您银行网站上的一个页面。