2015-04-24 105 views
0

我創建了一個查詢字符串,並將其添加到URL,像這樣:追加查詢字符串自變量的每一個URL

// HTML from index.html 
<input type="button" value="Yes" onclick="redirect(this);" id="YES" class="btn btn-primary btn-lg"> 
<input type="button" value="No" onclick="redirect(this);" id="NO" class="btn btn-primary btn-lg"> 
// JS on index.html 
function redirect(e){ 

    var mapPg = "map.html"; 
    var qString = "?choice="; 
    location.href = mapPg + qString + e.id; 

} 

開始的map.html頁面上,我想利用這個查詢字符串,並貫徹始終,以除index.html頁面外的所有網址。

當用戶點擊price.html pg時,它將使用查詢字符串來調用一個函數,該函數將提取「是」答案的數據。 「不」的答案也是一樣的。

我無法弄清楚如何將查詢字符串追加到單擊每個pg的URL上。

nav是一個包含JavaScript的文件,我已經將一類qString添加到了nav中的所有<a>,以便更容易地定位它們。

+1

您不能設置cookie或sessionStorage或localStorage? – Hoyen

回答

0

您可以添加此的每一頁:

window.addEventHandler("load", function() { 
    var match = location.search.match(/\bchoice=([^&]*)/); 
    if (!match) { 
     return; 
    } 
    var choice = match[1]; 
    var navlinks = document.getElementsByClassName("qString"); 
    for (var i = 0; i < navlinks.length; i++) { 
     if (navlinks[i].search == '') { 
      navlinks[i].search = '?choice=' + choice; 
     } else { 
      navlinks[i].search += '&choice=' + choice; 
     } 
    } 
} 
+0

這一個沒有工作出於某種原因。我非常感謝你的幫助。我用了你的變量和@ShawnJacobson的答案組合。 – FrankDraws

0
location.href = mapPg + qString + e.id; 

需要改變這裏的代碼。 e.getAttribute(「id」)

0

謝謝@ShawnJacobson和@Barmar。雖然個人答案無法正常工作,但我將兩者結合起來,以達成可行的解決方案。

var navlinks = document.getElementsByClassName("qString"); 
    $(navlinks).prop("href", function() { return this.href + location.search; }) 

肖恩的答案有點工作,但它禁用所有<a>標籤。 Barmar的回答沒有奏效,但看到變量var navlinks後,它給了我一個想法。

我真的很感謝你的幫助,在找到答案。

相關問題