使用jQuery替换查询字符串param并将其放在地址栏中而不刷新

时间:2012-07-05 07:04:38

标签: jquery jquery-address

我必须使用jQuery或JavaScript将st = 6替换为st = 7并更新地址栏。我尝试使用jQuery地址插件但我只能替换#。

之后的部分

请问您如何在#之前更新查询字符串。 查询字符串如下所述。

http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10

我不想在更改网址时刷新页面,但需要更改地址栏中的网址。

4 个答案:

答案 0 :(得分:1)

如果您的意思是想要更新地址栏中的实际网址,那么这是HTML5的新功能,并没有得到广泛支持。

例如:

window.history.pushState(“object or string”, “Title”, “/new-url”);

在caniuse.com看来,这似乎在所有浏览器的下一个主要版本中都会出现:

您仍然可以更改网址,但会使用window.location = "http://www.example.com/";重新加载网页

您应该能够使用此页面中的其他正则表达式来构建您要重定向到的网址。

答案 1 :(得分:0)

试试这个

var str = 'http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10';
str.replace(/(st\=)\d+&/, "$1" + '7'); // replace '7' with any number you like

这不是jQuery,它是javascript(jQuery的东西是由:) Regular Expression组成的,它可以在你的情况下完成工作。

答案 2 :(得分:0)

您可以使用正则表达式,如下所示:

var addr = 'http://test.com/search/searchresults?st=6&term=chicken#/?term=chicken&pi=1&ps=10';
var newVal = 7;

addr.replace(/([?&])st=\d+/, '$1st=' + newVal);

答案 3 :(得分:0)

我认为您要求的内容无法实现,想到银行登录表单页面,您将当前网址替换为真实银行网址,这会导致严重的安全问题。