1. ホーム
  2. javascript

[解決済み] JavaScriptからGETパラメータを取得する方法 [重複]について

2022-03-24 16:48:46

質問

考えてみてください。

http://example.com/page.html?returnurl=%2Fadmin

について jspage.html を取得することはできません。 GET のパラメータを指定します。

上記の簡単な例では func('returnurl')/admin .

しかし、複雑なクエリー文字列にも対応できるはずなのですが...。

解決方法は?

を使用すると ウィンドウの位置 オブジェクトを作成します。このコードでは、クエスチョンマークなしのGETが得られます。

window.location.search.substr(1)

この例では、次のようになります。 returnurl=%2Fadmin

EDIT : を勝手に変更しました。 Qwertyの回答 である。 実に良い と指摘されたので、私はOPの質問に忠実に従いました。

function findGetParameter(parameterName) {
    var result = null,
        tmp = [];
    location.search
        .substr(1)
        .split("&")
        .forEach(function (item) {
          tmp = item.split("=");
          if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
        });
    return result;
}

彼のコードから重複する関数実行を削除し、変数 ( tmp ) に置き換えた。 decodeURIComponent OPの指示通りです。これはセキュリティの問題なのか、そうでないのか、よくわかりません。

そうでなければ、IE8でも動作するプレーンなforループを使用します。

function findGetParameter(parameterName) {
    var result = null,
        tmp = [];
    var items = location.search.substr(1).split("&");
    for (var index = 0; index < items.length; index++) {
        tmp = items[index].split("=");
        if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
    }
    return result;
}