13

私は JavaScript を使用しており、持っている URL 文字列をホスト、パス、クエリ引数などのコンポーネントに分解したいと考えています。

クエリ引数の 1 つを取得するためにこれを行う必要があります。これはそれ自体が URL であるため、元の URL 文字列にエンコードされます。

Javascriptでこれを行う簡単な方法があるべきだと思います。おそらく、次のようになります。

var what_I_Want = url("http://www.domain.com?queryArg1=somequeryargument").getQueryArgumentValue("queryArg1");
4

4 に答える 4

17

parseUri関数は、必要なすべてを行います

編集 または、DOM に面倒な作業aを任せて、URL のさまざまな部分の新しく作成されたオブジェクトのプロパティにアクセスすることもできます。

于 2011-07-03T01:51:37.230 に答える
3
<script type="text/javascript" language="javascript">
newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
</script>

Hope this will help..
于 2014-09-01T11:03:22.953 に答える
2

javascript では、params に split() を使用し、プロトコルとドメインに location オブジェクトを使用することでこれを行うことができます - Carl が提案したように

また、Takが提案したようにparseUriを使用することもできます

プロジェクトですでに jQuery を使用している場合、解析を容易にする jQuery プラグインもあります: https://github.com/allmarkedup/jQuery-URL-Parser#readme

例:

$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue'
于 2011-07-03T01:59:16.770 に答える
1

おそらくそれを行う最善の方法ではありませんが、JavaScript でクエリ文字列を取得する簡単な方法は、次の行に沿って何かを使用することです。

 a = "http://www.domain.com?queryArg1=somequeryargument";
 query = a.substring(a.indexOf('?')+1);

次に、& と = に基づいてクエリを分割し、必要なパラメーターを取得できます。

少しローテクな方法なので、これがあまり役に立たない場合は申し訳ありません:P

編集:あなたの例では、URLクエリパラメーターを取得するための簡単な小さなJavaScriptオブジェクトを作成しました(一種のように)。クロムでのみテストしましたが、理論的には動作するはずです:)

//Quick and dirty query Getter object.
function urlQueryGetter(url){
    //array to store params
    var qParam = new Array();
    //function to get param
    this.getParam = function(x){
    return qParam[x];
    }

    //parse url 
    query = url.substring(url.indexOf('?')+1);
    query_items = query.split('&');
    for(i=0; i<query_items.length;i++){
        s = query_items[i].split('=');
        qParam[s[0]] = s[1];
    }

}

//Useage
var bla = new urlQueryGetter("http://www.domain.com?queryArg1=somequeryargument&test=cheese");
alert(bla.getParam('test'));
于 2011-07-03T01:58:12.400 に答える