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をお勧めします: 「Cowboy」 BenAlmanによる戻るボタンとクエリライブラリ

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

繰り返されるパラメータ(例:?tag = foo&tag = bar)に遭遇する可能性がある場合、そこにあるほとんどのライブラリは十分ではありません。その場合、私がJanWolterの非常に包括的なパーサーから開発したこのライブラリーを検討することをお勧めします。.plus()関数と.minus()関数とラウンドトリップを追加しました。

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

于 2012-09-26T20:11:30.500 に答える
1

toQueryParams() と呼ばれる、prototypejs.org の String ユーティリティを使用します。

サイトの例: 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();
// -> {タグ: 'Ruby on Rails'}

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

また、エイリアス 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 に答える