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
)。
例外
SecurityError
DOMException
-
ユーザーエージェントが登録解除をブロックしました。 以下の可能性があります。
- スキーム(プロトコル)が不正な場合、例えばブラウザーが自身で処理するスキームなど(
https:
、about:
、など)。 - このハンドラーの URL のオリジンが、この API を呼び出したページのオリジンと一致していません。
- この関数は、安全なコンテキストから呼び出されることがブラウザーによって要求されます。
- ブラウザーでは、ハンドラーの URL が HTTPS であることが要求されます。
- スキーム(プロトコル)が不正な場合、例えばブラウザーが自身で処理するスキームなど(
SyntaxError
DOMException
-
ハンドラー URL から
%s
プレースホルダーが欠落しています。
許可されているスキーム
セキュリティ上の理由から、unregisterProtocolHandler()
は登録解除できるスキームを制限しています。
カスタムスキームは、以下の条件を満たす限り、登録解除が可能です。
- カスタムスキームの名前が
web+
で始まる - カスタムスキームの名前の
web+
接頭辞の後に 1 文字以上ある - カスタムスキームの名前に小文字の ASCII 文字のみが含まれている
例えば、web+burger
(下記の例にあるとおり)。
それ以外の場合、スキームは以下のいずれかである必要があります。
bitcoin
ftp
ftps
geo
im
irc
ircs
magnet
mailto
matrix
mms
news
nntp
openpgp4fpr
sftp
sip
sms
smsto
ssh
tel
urn
webcal
wtai
xmpp
例
例えば、自分のウェブサイトが 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 Standard # dom-navigator-unregisterprotocolhandler-dev |
ブラウザーの互換性
BCD tables only load in the browser