URL: canParse() 静的メソッド
Baseline 2023 Newly available
Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
URL.canParse() は URL の静的メソッドで、絶対 URL、またはベース URL と結合した相対 URL が解析可能で有効かどうかを示す論理値を返します。
これは URL を try...catch ブロック内で組み立てるための高速で簡単な代替手段です。 これは URL() コンストラクターが成功するのと同じ値に対しては true を返し、コンストラクターが例外を発生させる値に対しては false を返します。
構文
URL.canParse(url) URL.canParse(url, base) 引数
返値
その URL が解釈可能で有効であれば true、そうでなければ false を返します。
例
このライブ例では、静的メソッド URL.canParse() を使用して、いくつか異なる絶対 URL 値と相対 URL 値を使用する方法を示します。
例の最初の部分では、ログ出力先の HTML 要素 <pre> とログ出力するメソッド log() を定義しています。
<pre id="log"></pre> const logElement = document.getElementById("log"); function log(text) { logElement.innerText += `${text}\n`; } 次に、URL.canParse() メソッドに対応しているかどうかを、"canParse" in URL という条件を用いて調べます。 メソッドが対応している場合は、絶対 URL、ベース URLのない相対 URL、有効なベース URL のある相対 URL を調べた結果をログ出力します。 URL.canParse() が対応していない場合もログ出力します。
if ("canParse" in URL) { log("有効な絶対 URL を検査"); let url = "https://developer.mozilla.org/"; let result = URL.canParse(url); log(` URL.canParse("${url}"): ${result}`); log("\nベース URL のない相対 URL を検査"); url = "/ja/docs"; result = URL.canParse(url); log(` URL.canParse("${url}"): ${result}`); log("\n有効なベース URL のある相対 URL を検査"); let baseUrl = "https://developer.mozilla.org/"; result = URL.canParse(url, baseUrl); log(` URL.canParse("${url}","${baseUrl}"): ${result}`); } else { log("URL.canParse() に対応していません"); } 最後に、下記のコードは baseUrl が文字列である必要はないことを示しています。 ここでは URL オブジェクトを渡しています。
if ("canParse" in URL) { log("\nURL オブジェクトとして提供されたベース URL つきの相対 URL を検査"); let baseUrl = new URL("https://developer.mozilla.org/"); let url = "/ja/docs"; result = URL.canParse(url, baseUrl); log(` URL.canParse("${url}","${baseUrl}"): ${result}`); } それぞれのチェック結果を下記に示します。
仕様書
| Specification |
|---|
| URL> # dom-url-canparse> |
ブラウザーの互換性
Loading…
関連情報
URL()URL.canParse()のポリフィルがcore-jsで利用できます