使用Javascript修改任何URL的参数

时间:2014-03-20 07:14:23

标签: javascript

我想使用Javascript更改URL中的任何参数

例:    http://demo.com/admin/?admin-page=faq&kw=123 => http://demo.com/admin/?admin-page=faq&kw=123456

我尝试了几种方法,但没有达到预期的效果,你可以帮我解决一下吗?

2 个答案:

答案 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/),然后在字符后面获取参数。 ?'