阅读querystring与jQuery参数返回null
问题描述:
我想通过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的这种方法。
有没有人发现上述代码的任何问题?
答
我转载此没有任何问题,我的网址是:
http://localhost/test/test/Test.html?ssip=foo
getStreamingServerIP()从Firebug的控制台归来 “foo” 的
推出确保你正在你对一个有效的URL请求,而不是从浏览器中加载的本地文件。
入住Firebug的,如果你有> DOM面板的东西>然后在树视图:
窗口>位置>搜索
答
这是我使用。
<!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:&, 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>
答
我遇到同样的问题。
我相信查询插件2.1.7版本只与jQuery 1.2.x兼容。
在插件下载页面,签出API版本选择框,点击应用,你会看到没有jQuery 1.3或1.4版本。
谢谢。当我回去工作时我会尝试。我试图在本地文件而不是通过HTTP,但我想知道这是否是真正的问题。与此同时,我通过获取location.search的子字符串来解决此问题。 – 2010-01-15 16:48:04