2012-07-12 40 views
0

我有一個查詢字符串,它看起來像這樣page3.html?redesigndata=value其中如果從page2.html重定向時從page1.htmlpage3.html?new=yesno重定向出現。下面是我使用找出查詢字符串是什麼,做page3.html如何使用javascript訪問查詢字符串?

var locurl = window.location.search; 
if (locurl.substring(0, 13) === '?redesigndata') { 
    alert("redesign!"); 
} else if (locurl.substring(0, 4) === '?new') { 
    visit = locurl.substring(5); 
    alert("somthing!"); 
    if (visit === 'yes') { 
    alert("first!"); 
    } else if (visit === 'no') { 
    alert("again!"); 
    } 
} 

一些函數的代碼,但是當我嘗試這個劇本我沒有得到任何警告,我不能找出它出什麼問題了。

+1

您是否嘗試過使用FireFox在FireFox或類似軟件中運行它? – freefaller 2012-07-12 16:19:58

+1

我不打算提出另一個答案,但我沒有看到腳本的問題...看起來工作正常 – freefaller 2012-07-12 16:24:16

+1

alert(window.location.search);你得到了什麼? – kiranvj 2012-07-12 16:30:18

回答

1

嘗試使用此功能

function getQueryString() { 
    var result = {}, queryString = location.search.substring(1), 
     re = /([^&=]+)=([^&]*)/g, m; 

    while (m = re.exec(queryString)) { 
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
    } 

    return result; 
} 

// ... 
var myParam = getQueryString()["myParam"]; 

檢查這樣

if(getQueryString()["redesigndata"] != "") 
+0

如果這個字段根本不存在,那麼這不是一個單例並且不會失敗 – mplungjan 2012-07-12 17:58:57

+0

這是基本代碼,必須在需要的地方進行適當的檢查。 – kiranvj 2012-07-13 04:48:51

1

您發佈的代碼沒有任何問題。如果警報不會觸發,那是因爲條件從未得到滿足。一旦將查詢字符串添加到與您在代碼中列出的URL匹配的URL中,警報就會觸發。

另外,要小心你(似乎)創造全球變量。

1

該腳本適用於我的盒子。請將此腳本放在腳本標記中