Skip to content

Commit

Permalink
2023/07/07 時点の英語版に基づき新規翻訳
Browse files Browse the repository at this point in the history
  • Loading branch information
mfuji09 committed Aug 30, 2024
1 parent c2d80e6 commit 15e9895
Showing 1 changed file with 104 additions and 0 deletions.
104 changes: 104 additions & 0 deletions files/ja/web/api/navigator/unregisterprotocolhandler/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: "Navigator: unregisterProtocolHandler() メソッド"
short-title: unregisterProtocolHandler()
slug: Web/API/Navigator/unregisterProtocolHandler
l10n:
sourceCommit: acfe8c9f1f4145f77653a2bc64a9744b001358dc
---

{{APIRef("HTML DOM")}}{{securecontext_header}}

**{{domxref("Navigator")}}****`unregisterProtocolHandler()`** は、指定された URL [スキーム](#許可されているスキーム)からプロトコルハンドラーを取り除きます。

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

## 構文

```js-nolint
unregisterProtocolHandler(scheme, url)
```

### 引数

- `scheme`
- : このプロトコルハンドラーで登録解除する[許可されているスキーム](#許可されているスキーム)の入った文字列。
例えば、`"sms"` スキームを渡すと、SMSテキストメッセージリンク用のハンドラーを登録解除できます。
- `url`
- : ハンドラーの URL の入った文字列。
**この URL は、ハンドラーを登録する際に使用したものと一致させる必要があります(例えば、`%s` を記載する必要があります)**

### 返値

なし ({{jsxref("undefined")}})。

### 例外

- `SecurityError` {{domxref("DOMException")}}
- : ユーザーエージェントが登録解除をブロックしました。
以下の可能性があります。
- スキーム(プロトコル)が不正な場合、例えばブラウザーが自身で処理するスキームなど(`https:``about:`、など)。
- このハンドラーの URL の{{Glossary("origin", "オリジン")}}が、この API を呼び出したページのオリジンと一致していません。
- この関数は、安全なコンテキストから呼び出されることがブラウザーによって要求されます。
- ブラウザーでは、ハンドラーの URL が HTTPS であることが要求されます。
- `SyntaxError` {{domxref("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` でなければなりません。

## 仕様書

{{Specifications}}

## ブラウザーの互換性

{{Compat}}

0 comments on commit 15e9895

Please sign in to comment.