2010-04-13 68 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