2012-04-04 75 views
-1

我有一個當前的URL看起來像這樣:的Javascript:從當前的URL使用變量來創建並打開新的URL

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

我想用variables1和variables2創建一個新的URL和開放這個新的URL:

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

我希望有人能幫助我解決這個:)

+0

你有什麼嘗試?你目前有什麼代碼?你想達到什麼目的? – Josh 2012-04-04 21:33:55

+0

看看這 http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript – Filype 2012-04-04 21:34:48

+0

我想繞過按鈕點擊,因爲我不能設法使腳本點擊那個按鈕。這個按鈕實際上創建了這樣一個URL並打開它。 – JohnAno 2012-04-04 21:41:45

回答

0

您需要從第一個URL解析所需的查詢參數並使用字符串添加來創建第二個URL。

您可以使用this code從URL中獲取特定的查詢參數。如果你使用,你可以得到variables1和variables2這樣的:

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

然後,您可以用這些來構建新的網址。

newURL = "http://example.com/?variables1=" + 
    encodeURIComponent(variables1) + 
    "&someOtherStuff=foo&variables2=" + 
    encodeURIComponent(variables2); 
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 

*是未經測試。

相關問題