13

我在网上看到的示例似乎比我预期的要复杂得多(手动将 &/?/= 解析成对,使用正则表达式等)。 我们正在使用 asp.net ajax (在他们的客户端参考中看不到任何内容),如果真的有帮助,我们会考虑添加 jQuery。

我认为那里有一个更优雅的解决方案 - 到目前为止,这是我找到的最好的代码,但我很想找到更多类似 HttpRequest.QueryString 对象(asp.net 服务器端)的东西。提前致谢,

谢恩

4

7 回答 7

13

确实有一个用于 jQuery 的QueryString 插件,如果您愿意安装 jQuery 核心和插件,它可能会很有用。

于 2008-09-29T20:05:41.773 回答
9

如果我不想使用插件,我正在使用此功能:

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;
}
于 2010-08-02T13:32:12.407 回答
3

看看我的帖子,因为它告诉你具体如何做到这一点:

http://seattlesoftware.wordpress.com/2008/01/16/javascript-query-string/

于 2008-09-29T20:08:22.127 回答
2

对于 jQuery,我建议jQuery BBQ: Back Button & Query Library By "Cowboy" 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 );
于 2010-08-02T13:22:52.757 回答
1

使用来自prototypejs.org 的String 实用程序,称为toQueryParams()。

来自他们网站的示例:http: //prototypejs.org/api/string/toQueryParams

'section=blog&id=45'.toQueryParams();
// -> {section: 'blog', id: '45'}

'section=blog;id=45'.toQueryParams();
// -> {section: 'blog', id: '45'}

' http://www.example.com?section=blog&id=45#comments '.toQueryParams();
// -> {section: 'blog', id: '45'}

'section=blog&tag=javascript&tag=prototype&tag=doc'.toQueryParams();
// -> {section: 'blog', tag: ['javascript', 'prototype', 'doc']}

'tag=ruby%20on%20rails'.toQueryParams();
// -> {tag: 'ruby on rails'}

'id=45&raw'.toQueryParams();
// -> {id: '45', raw: undefined}

此外,您可以使用别名 parseQuery() 来获得相同的结果。

window.location.search.parseQuery();

由于 window.location 返回一个对象,因此您必须获取该字符串。

于 2008-12-31T16:54:21.887 回答
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); 
        });*
于 2012-08-07T11:24:48.747 回答
1

如果有可能遇到重复的参数(例如 ?tag=foo&tag=bar),那么大多数库都不够用。在这种情况下,您可能需要考虑我从 Jan Wolter 的非常全面的解析器开发的这个库。我添加了 .plus() 和 .minus() 函数和往返:

https://github.com/timmc/js-tools/blob/master/src/QueryString.js

于 2012-09-26T20:11:30.500 回答