2010-04-13 67 views
1

我們如何在javascript中收集查詢字符串值。 我的腳本如下所示 http://192.168.10.5/study/gs.js?id=200 這裏我想收集我的gs.js腳本文件中的id值。 對於這個我使用Javascript中的查詢字符串

function getQuerystring(key, default_) 
{ 
    if (default_==null) default_=""; 
    key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regex = new RegExp("[\\?&]"+key+"=([^&#]*)"); 
    var qs = regex.exec(window.location.href); 
    if(qs == null) 
    return default_; 
    else 
    return qs[1]; 
} 
var string_value = getQuerystring('id'); 
alert(string_value); 

但它不是getting..Please任何人都可以糾正me.Please

回答

1

從我programming archive

function querystring(key) { 
    var re = new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi'); 
    var r = [], m; 
    while ((m = re.exec(document.location.search)) != null) r[r.length] = m[1]; 
    return r; 
} 

該函數返回找到的值作爲包含零個或多個字符串的數組。

用法:

var values = querystring('id'); 
if (values.length > 0) { 
    // use values[0] to get the first (and usually only) value 
    // or loop through values[0] to values[values.length-1] 
} 

或:

var string_value = querystring('id').toString(); 
1

這個函數獲取承載此腳本的頁面的查詢字符串:它依靠window.location.href。看來http://192.168.10.5/study/gs.js?id=200是腳本本身的地址,而不是頁面。爲了做到這一點,您需要先查看文檔中的script標籤,然後稍微修改前面的函數以獲取代表url的附加參數,而不依賴於window.location.href

+0

或者 - 讓服務器端將'var myid = 200;'注入爲'gs.js?id = 200'服務的javascript代碼中 – gnarf 2010-06-18 08:28:28