LoginSignup
7
5

More than 5 years have passed since last update.

URLのクエリパラメタを取得する(IE11対応)

Posted at

やりたいこと

現在の表示しているwebページのURLからクエリパラメタを取得したいとします。

コード例は ↓にアクセスしたときの結果です。
https://example.com?hello=こんにちは&bye=さようなら
CodePen置いておきます。https://codepen.io/anon/pen/YBdvye

方法1: モダンブラウザの場合

URL#searchParams を使います。

const params = (new URL(window.location)).searchParams;
console.log(params.get('hello')); // "こんにちは"
console.log(params.get('bye'));   // "さようなら"
console.log(params.get('hoge'));  // null

返却されるのは plaing Object ではなく URLSearchParams なので、getメソッドを通してパラメタ値を取得します。

↓ここにあるように、IE11では利用できません。
https://developer.mozilla.org/en-US/docs/Web/API/URL#Browser_compatibility

方法2: Internet Explorer 11 (IE11) の場合

URI.js を使います。

ライブラリの取得

使い方

var uri = new URI(window.location);
var params = uri.query(true);
console.log(params['hello']); // "こんにちは"
console.log(params['bye']);   // "さようなら"
console.log(params['hoge']);  // undefined

URI#query の引数を true にすると Object 型で返ってきます。それ以外はクエリパラメタの文字列そのもの(hello=こんにちは&bye=さようなら)が返ってきます。
http://medialize.github.io/URI.js/docs.html#accessors-search

不採用

  • split('&') とか使う・正規表現を使う
    • イレギュラーなケースを考えたくないので不採用
  • purl.js
    • README.md にあるように、メンテナンスされていません
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5