我在网上看到的例子似乎比我预期的复杂得多(手动解析& /?/ =成对,使用正则表达式等)。我们正在使用asp.net ajax (在客户端参考中没有看到任何内容)并且会考虑添加jQuery,如果真的有帮助的话。
我认为那里有一个更优雅的解决方案 - 到目前为止this is the best code I've found但我希望找到更多与HttpRequest.QueryString对象(asp.net服务器端)< / em>的。提前谢谢,
沙恩
答案 0 :(得分:13)
jQuery确实有一个QueryString plugin,如果你愿意安装jQuery核心和插件,那么它可能会很有用。
答案 1 :(得分:8)
我正在使用此功能,以防我不想使用插件:
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == variable) {
return pair[1];
}
}
return null;
}
答案 2 :(得分:3)
看看我的帖子,因为它告诉你具体如何做到这一点:
http://seattlesoftware.wordpress.com/2008/01/16/javascript-query-string/
答案 3 :(得分:2)
对于jQuery,我建议jQuery BBQ: Back Button & Query Library由“牛仔”Ben Alman
jQuery BBQ利用HTML5 hashchange事件允许简单但是 强大的可收藏的#hash历史记录。 另外,jQuery BBQ提供了一个 完整的.deparam()方法,以及 哈希状态管理,和 片段/查询字符串解析和 合并实用方法。
示例:
// Parse URL, deserializing query string into an object.
// http://www.example.com/foo.php?a=1&b=2&c=hello#test
// search is set to ?a=1&b=2&c=hello
// myObj is set to { a:"1", b:"2", c:"hello" }
var search = window.location.search;
var myObj = $.deparam.querystring( search );
答案 4 :(得分:1)
使用prototypejs.org中的String实用程序,名为toQueryParams()。
来自其网站的示例:http://prototypejs.org/api/string/toQueryParams
“部分=博客和ID = 45'.toQueryParams();
// - &gt; {section:'blog',id:'45'}“部分=博客; ID = 45'.toQueryParams();
// - &gt; {section:'blog',id:'45'}'http://www.example.com?section=blog&id=45#comments' toQueryParams();
// - &gt; {section:'blog',id:'45'}“部分=博客&安培;标记= JavaScript的&安培;标记=原型&安培;标记= doc'.toQueryParams();
// - &gt; {section:'blog',tag:['javascript','prototype','doc']}“标记=红宝石%20on%20rails'.toQueryParams();
// - &gt; {tag:'ruby on rails'}“ID = 45&安培; raw'.toQueryParams();
// - &gt; {id:'45',raw:undefined}
此外,您可以使用别名parseQuery()来获得相同的结果。
window.location.search.parseQuery();
由于window.location返回一个对象,因此必须获取该字符串。
答案 5 :(得分:1)
*$(document).ready(function () {
$("#a").click(function () {
window.location.href = "secondpage.aspx?id='0' & name='sunil'& add='asr' & phone='1234'";
});
});*
**then read the query string parameters on another using split method . Here as follows:**
*$(document).ready(function () {
var a = decodeURI(window.location.search);
var id = window.location.search = "id=" + $().val();
var name = a.split("name=")[1].split("&")[0].split("'")[1];
var phone = a.split("phone=")[1].split("&")[0].split("'")[1];
var add = a.split("add=")[1].split("&")[0].split("'")[1];
alert(id+','+name+','+add+','+phone);
});*
答案 6 :(得分:1)
如果有可能遇到重复参数(例如?tag = foo&amp; tag = bar),那么大多数库都不够用。在这种情况下,您可能想要考虑我从Jan Wolter的very comprehensive parser开发的这个库。我添加了.plus()和.minus()函数和往返:
https://github.com/timmc/js-tools/blob/master/src/QueryString.js