2012-04-27 66 views
4

我現在有一個jQuery的功能,我需要知道是否有任何GET數據存在。我不需要來自查詢字符串的數據,只是是否有或者不運行兩個函數之一。

等效PHP:

if (isset($_GET['datastring'])) { 
    // Run this code 
} else { 
    // Else run this code 
} 
+3

可能的重複:http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript – AndrewR 2012-04-27 17:53:56

+0

你應該補充說你正在使用mod_rewrite。事實上,我認爲這使得這個問題在客戶端無法解決。 – Ord 2012-04-27 18:22:47

回答

4

你將不得不嘗試類似的措施:(你不必使用變量,但你可以的,如果你想)

$.urlParam = function(name){ 
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 
    return results[1] || 0; 
} 

if ($.urlParam('variable_name') != '') { // variable_name would be the name of your variable within your url following the ? symbol 
    //execute if empty 
} else { 
    // execute if there is a variable 
} 

如果你想使用的變量:如果有任何GET參數

// example.com?param1=name&param2=&id=6 
$.urlParam('param1'); // name 
$.urlParam('id');  // 6 
$.urlParam('param2'); // null 
1

這樣嗎?

if (yourUrlStringVar.indexOf('?')>-1) { 
    return true; 
} else { 
    return false; 
} 
0
location.search != "" 

將返回true。

http://www.w3schools.com/jsref/prop_loc_search.asp,location.search返回URL的 「查詢部分」,從 '?'符號向前。因此,對於頁面http://www.mysite.com/page?query=3,location.search是?query=3。對於http://www.google.com/,location.search是一個空字符串。

+0

我正在使用mod_rewrite,因此不幸的是,這似乎不適用於這種情況。 – lethalMango 2012-04-27 17:59:11

+0

在這種情況下,我不確定您可以訪問GET參數。從客戶端,你看到的只是你要求的URL。如果這與服務器端正在使用的URL不同,那麼JavaScript將忽略這一點。 – Ord 2012-04-27 18:04:20