0

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

您能否建议我如何在 # 之前更新查询字符串。查询字符串如下所述。

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

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

4

4 回答 4

1

如果您的意思是要更新地址栏中的实际 url,那么这是 HTML5 的一项新功能,并未得到广泛支持。

例如:

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

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

您仍然可以更改 url,但它会导致页面通过使用重新加载window.location = "http://www.example.com/";

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

于 2012-07-05T07:20:35.680 回答
0

我认为您要求的内容无法实现,请考虑将当前 url 替换为真实银行 url 的银行登录表单页面,这将导致重大安全问题。

于 2012-07-05T08:24:01.923 回答
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 是由 :) 通过正则表达式组成的,它应该在你的情况下完成这项工作。

于 2012-07-05T07:10:14.197 回答
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);
于 2012-07-05T07:13:13.773 回答