我想使用Javascript更改URL中的任何参数
例: http://demo.com/admin/?admin-page=faq&kw=123 => http://demo.com/admin/?admin-page=faq&kw=123456
我尝试了几种方法,但没有达到预期的效果,你可以帮我解决一下吗?
答案 0 :(得分:1)
您要更改的网址部分是查询字符串,可从location.search
媒体资源中获取。它是&
- 由URI编码的key=value
对分开的系列。
您可以将其拆分为:
var search = location.search.charAt(0) === '?' ? location.search.substring(1) : location.search;
var pairs = search.split('&').map(function(pair) {
return pair.split('=');
});
然后搜索pairs
,查找pair[0]
为kw
的那个并替换其值:
pairs.some(function(pair) {
if (pair[0] === 'kw') {
pair[1] = encodeURIComponent(yourNewValue);
return true;
}
});
(Array#some
循环遍历数组的条目,并在从回调中返回true
时停止。)
然后分配结果:
location.search = '?' + pairs.join('&');
...将在窗口中加载带有新查询字符串的页面。
附注:以上使用了ES5新增的两个数组功能。两者都是"可调和"所以如果你需要支持IE8,你会想要一个ES5垫片。 (搜索" es5垫片"将为您提供选项。)
答案 1 :(得分:0)
因此,如果我理解正确,您只想更新网址。然后你只需要编辑它。
使用jQuery:
$("#myLink").attr("href", myNewHref);
Pure Javascript:
myLink.href = myNewHref;
myNewHref
可以使用字符串操作更新split
函数或Regex以获取网址的第一部分(http://demo.com/admin/),然后在字符后面获取参数。 ?'