Navigator: unregisterProtocolHandler() メソッド
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Navigator の unregisterProtocolHandler() は、指定された URL スキームからプロトコルハンドラーを取り除きます。
このメソッドは registerProtocolHandler() の逆です。
構文
unregisterProtocolHandler(scheme, url)
引数
scheme-
このプロトコルハンドラーで登録解除する許可されているスキームの入った文字列。 例えば、
"sms"スキームを渡すと、SMSテキストメッセージリンク用のハンドラーを登録解除できます。 url-
ハンドラーの URL の入った文字列。 この URL は、ハンドラーを登録する際に使用したものと一致させる必要があります(例えば、
%sを記載する必要があります)。
返値
なし (undefined)。
例外
SecurityErrorDOMException-
ユーザーエージェントが登録解除をブロックしました。 以下の可能性があります。
- スキーム(プロトコル)が不正な場合、例えばブラウザーが自身で処理するスキームなど(
https:、about:、など)。 - このハンドラーの URL のオリジンが、この API を呼び出したページのオリジンと一致していません。
- この関数は、保護されたコンテキストから呼び出されることがブラウザーによって要求されます。
- ブラウザーでは、ハンドラーの URL が HTTPS であることが要求されます。
- スキーム(プロトコル)が不正な場合、例えばブラウザーが自身で処理するスキームなど(
SyntaxErrorDOMException-
ハンドラー URL から
%sプレースホルダーが欠落しています。
許可されているスキーム
セキュリティ上の理由から、unregisterProtocolHandler() は登録解除できるスキームを制限しています。
カスタムスキームは、以下の条件を満たす限り、登録解除が可能です。
- カスタムスキームの名前が
web+で始まる - カスタムスキームの名前の
web+接頭辞の後に 1 文字以上ある - カスタムスキームの名前に小文字の ASCII 文字のみが含まれている
例えば、web+burger(下記の例にあるとおり)。
それ以外の場合、スキームは以下のいずれかである必要があります。
bitcoinftpftpsgeoimircircsmagnetmailtomatrixmmsnewsnntpopenpgp4fprsftpsipsmssmstosshtelurnwebcalwtaixmpp
例
例えば、自分のウェブサイトが burgers.example.com で、web+burger: スキームがある場合、そのハンドラーを次のようにして登録解除することができます。
navigator.unregisterProtocolHandler(
"web+burger",
"https://burgers.example.com/?burger=%s",
);
このスクリプトは、ハンドラー URL と同じオリジン(例えば、https://burgers.example.com の何れかのページ)から実行する必要があり、ハンドラーの URL は http または https でなければなりません。
仕様書
| Specification |
|---|
| HTML> # dom-navigator-unregisterprotocolhandler-dev> |
ブラウザーの互換性
Loading…