2010-01-15 95 views
0

我想通过jQuery和查询插件读取querystring参数(“ssip”),但它似乎返回null而不是实际值。阅读querystring与jQuery参数返回null

这里是我的代码:

<script src="jquery-1.3.2.min.js" language="javascript"></script> 
<script src="jquery.query-2.7.1.js" language="javascript"></script> 

<script language="JavaScript" type="text/javascript"> 
    function getStreamingServerIP() { 
    return $.query.get('ssip'); 
    } 
</script> 

我打电话通过ExternalInterface的从Flex的这种方法。

有没有人发现上述代码的任何问题?

回答

0

我转载此没有任何问题,我的网址是:

http://localhost/test/test/Test.html?ssip=foo

getStreamingServerIP()从Firebug的控制台归来 “foo” 的

推出确保你正在你对一个有效的URL请求,而不是从浏览器中加载的本地文件。

入住Firebug的,如果你有> DOM面板的东西>然后在树视图:

窗口>位置>搜索

+0

谢谢。当我回去工作时我会尝试。我试图在本地文件而不是通过HTTP,但我想知道这是否是真正的问题。与此同时,我通过获取location.search的子字符串来解决此问题。 – 2010-01-15 16:48:04

0

这是我使用。

<!doctype html> 
<html> 
<head> 
<script src="jquery-1.4.js"></script> 
<script> 
/** 
* @return null if param not found 
* @return string if param found once 
* @return array if param found more than once or name ends with "[]" 
*/ 
function getQueryStringParam (name) { 
    var result = null; 
    if (location.search !== "") { 
     var querystring = location.search.substring(1).replace(/\+/g, " "); 
     var pairs = querystring.split("&"); 
     var isFound = false; 
     for (var i=0; i<pairs.length; i++) { 
      var pair = pairs[i].split("="); 
      var key = decodeURIComponent(pair[0]); 
      if (key === name) { 
       var val = (pair.length === 2 ? decodeURIComponent(pair[1]) : key); 
       if (!isFound) { 
        isFound = true; 
        result = [val]; 
       } 
       else { 
        result.push(val); 
       } 
      } 
     } 
     if (isFound && result.length == 1 && !/\[.*\]$/.test(name)){ 
      result = result[0]; 
     } 
    } 
    return result; 
} 
/** 
* helper function 
*/ 
function printQueryStringParam (name) { 
    var result = ""; 
    var val = getQueryStringParam(name); 
    if (val === null) { 
     result = "null"; 
    } 
    else if (jQuery.isArray(val)) { 
     result = "[\n\t" + val.join(",\n\t") + "\n]"; 
    } 
    else { 
     result = val; 
    } 
    return result; 
} 
</script> 
</head> 
<body> 

<form action="test.html" method="get"> 
<p> 
text <input type="text" name="text" 
value="space: , plus:+, slash:/, backslash:\, amp:&amp;, equals:=, less:<, greater:>"><br> 
</p> 
<p> 
checkbox[]<br> 
<input type="checkbox" name="checkbox[]" value="a" checked> a<br> 
<input type="checkbox" name="checkbox[]" value="b" checked> b<br> 
</p> 
<p> 
<input type="submit"> 
</p> 
</form> 

<hr> 

<pre> 
<script> 
document.write("text: "+printQueryStringParam("text")); 
document.write("\ncheckbox[]: "+printQueryStringParam("checkbox[]")); 
</script> 
</pre> 

</body> 
</html> 
1

我遇到同样的问题。

我相信查询插件2.1.7版本只与jQuery 1.2.x兼容。

在插件下载页面,签出API版本选择框,点击应用,你会看到没有jQuery 1.3或1.4版本。