Navigator: unregisterProtocolHandler() メソッド

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

NavigatorunregisterProtocolHandler() は、指定された URL スキームからプロトコルハンドラーを取り除きます。

このメソッドは registerProtocolHandler() の逆です。

構文

js
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: スキームがある場合、そのハンドラーを次のようにして登録解除することができます。

js
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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
unregisterProtocolHandler

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
See implementation notes.
Has more compatibility info.