Javascript:使用当前URL中的变量来创建和打开新URL

时间:2012-04-04 21:31:49

标签: javascript

我有一个如下所示的当前网址:

http://example?variables1=xxxx&example&variables2=yyyyy

我想使用variables1和variables2创建一个新URL并打开这个新URL:

http://example?variables3=variables1&example&variables4=variables2

我希望有人可以帮助我:)

2 个答案:

答案 0 :(得分:0)

您需要从第一个URL解析所需的查询参数,并使用字符串添加来创建第二个URL。

您可以使用this code从网址中获取特定查询参数。如果你正在使用它,你可以像这样得到变量1和变量2:

var variables1 = getParameterByName("variables1");
var variables2 = getParameterByName("variables2");

然后,您可以使用这些来构建新网址。

newURL = "http://example.com/?variables1=" + 
    encodeURIComponent(variables1) + 
    "&someOtherStuff=foo&variables2=" + 
    encodeURIComponent(variables2);

答案 1 :(得分:0)

因为我不完全了解需要更改的内容,所以这是我最好的尝试 * ,使用other answersresources online的混搭。

// the original url
// will most likely be window.location.href
var original = "http://example?variables1=xxxx&example&variables2=yyyyy";

// the function to pull vals from the URL
var getParameterByName = function(name, uri) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(uri);

    if(results == null) return "";
    else return decodeURIComponent(results[1].replace(/\+/g, " "));
};

// so, to get the vals from the URL
var variables1 = getParameterByName('variables1', original); // xxxxx
var variables2 = getParameterByName('variables2', original); // yyyyy

// then to construct the new URL
var newURL =  "http://" + window.location.host;
    newURL += "?" + "variables3=" + variables1;
    newURL += "&example&"; // I don't know what this is ...
    newURL += "variables4=" + variables2;

// the value should be something along the lines of
// http://example?variables3=xxxx&example&variables4=yyyy

* 所有这些都是未经测试的。