recursal/MDN huggingface dataset:
Navigator.registerProtocolHandler()
===================================

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

**`Navigator`** の **`registerProtocolHandler()`** メソッドで、ウェブサイトが特定の URL スキーム（別名プロトコル）を開いたり処理したりする機能を登録することを可能にします。

例えば、この API はウェブメールサイトで `mailto:` の URL を開かせたり、 VoIP サイトで `tel:` の URL を開かせたりします。

構文
--


```js
registerProtocolHandler(scheme, url);
registerProtocolHandler(scheme, url, title);
```


**メモ:** 非推奨の `title` 引数が付いたものは、互換性のために推奨されます（下記の引数情報を参照してください）。

### 引数

`scheme`

 サイトが扱いたいプロトコルの許可されているスキームが入った文字列です。
 例えば、 `"sms"` スキームを渡すことで、SMS テキストメッセージリンクを扱うように登録することができます。


`url`

 ハンドラーの URL を指定する文字列。
 **この URL には `%s` を含める必要があり**、これは取り扱う URL をエスケープしたもので置き換得られるプレイスホルダーとして扱われます。


**メモ:** ハンドラーの URL は `https` スキームを使用する必要があります。古いブラウザーは `http` にも対応しています。

`title` 
非推奨

 ハンドラーを表す人間が読めるタイトル文字列です。
 **これはユーザーに表示されます**。例えば、「このサイトで [スキーム] のリンクを扱うことを許可しますか？」と尋ねたり、ブラウザーの設定で登録されたハンドラーの一覧に表示されたりします。


**メモ:** タイトルはなりすましの懸念から仕様から削除されました。
 しかし `title` は一部のブラウザーが**まだ必要としている**ため、設定する必要があります（下記の互換性一覧表をご覧ください）。
 更新された仕様に対応しているブラウザーはほとんどの場合、タイトルを受け付けますが、無視します。


### 返値

なし (`undefined`)。

### 例外

`SecurityError` `DOMException`

 ユーザーエージェントが登録をブロックしました。
 以下のような場合に起こる可能性があります。


* ブラウザーが自身が処理するスキーム（`https:`, `about:`, など）であるなど、登録されているスキーム（プロトコル）が無効である場合。
* ハンドラーの URL のオリジンが、本 API を呼び出すページのオリジンと一致しない場合。
* ブラウザーが、この関数を安全なコンテキストから呼び出すことを要求している場合。
* ブラウザーが、ハンドラーの URL が HTTPS であることを要求している場合。

`SyntaxError``DOMException`

`%s` が指定されたハンドラー URL に含まれていない場合。

許可されているスキーム
-----------

セキュリティ上の理由により `registerProtocolHandler()` は登録可能なスキームに制限を設けています。

**カスタムスキーム**は次のような場合に登録されます。

* カスタムスキームの名前が `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.registerProtocolHandler(
  "web+burger",
  "https://burgers.example.com/?burger=%s",
  "Burger handler",
); // 最後の title 引数は互換性のために入れている
```


これは、 `web+burger:` リンクがアクセスしたバーガーの URL を `%s` プレースホルダーに挿入し、ユーザーをサイトに誘導するハンドラーを作成します。

このスクリプトはハンドラーの URL と同じオリジン (すなわち、 `https://burgers.example.com` にあるページのいずれか) から実行する必要があり、ハンドラーの URL は `http` または `https` である必要があります。

コードがプロトコルハンドラーを登録しようとしていることはユーザーに通知され、ユーザーは登録を許可するかどうか決めることができます。以下のスクリーンショットは `google.co.uk` での例です。

![ブラウザーの通知には、 "Add Burger handler (www.google.co.uk) as application for burger links?" と表示され、「アプリケーションの追加」ボタンとハンドラー要求を無視するクローズボタンが提供されます。](/ja/docs/Web/API/Navigator/registerProtocolHandler/protocolregister.png)

仕様書
---

| Specification |
| --- |
| HTML Standard # custom-handlers |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ウェブベースのプロトコルハンドラー
* RegisterProtocolHandler Enhancing the Federated Web (Mozilla Webdev)
Navigator: mediaDevices プロパティ
=============================

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

**`Navigator.mediaDevices`** 読み取り専用プロパティは、カメラやマイク、画面共有のような接続されたメディア入力装置へのアクセスを提供する `MediaDevices` オブジェクトを返します。

構文
--


```js
navigator.mediaDevices
```

### 返値

`MediaDevices` シングルトンオブジェクト。例えば `navigator.mediaDevices.getUserMedia()` (en-US) などを呼び出すなど、通常は、このオブジェクトのメンバーを直接使用するだけです。

仕様書
---

| Specification |
| --- |
| Media Capture and Streams # mediadevices |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* メディアキャプチャとストリーム API: すべてのメディアストリーム API についてのドキュメントのエントリーポイント。
* WebRTC API: 密接に関連する WebRTC API についてのドキュメント。
Navigator: productSub プロパティ
===========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`Navigator.productSub`** プロパティは読み取り専用で、現在のブラウザーのビルド番号を返します。

値
-

文字列です。

例
-


```js
document.body.textContent = `productSub: ${navigator.productSub}`;
```

メモ
--

IE では、このプロパティは、 `undefined` を返します。

Apple Safari および Google Chrome では、このプロパティは常に `20030107` を返します。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-productsub-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: language プロパティ
=========================

**`Navigator.language`** は読み取り専用プロパティで、ユーザーの言語を表す文字列を返します。普通、ブラウザー UI の言語が返されます。

値
-

文字列で、 RFC 5646: Tags for Identifying Languages (also known as BCP 47) で定義された言語バージョンを表します。例えば、"en"、"en-US"、"fr"、"fr-FR"、"es-ES" などが含まれます。

iOS 10.2 以前の Safari では、国コードは "en-us"、"fr-fr" のように小文字で返されます。

例
-


```js
if (/^en\b/.test(navigator.language)) {
  doLangSelect(window.navigator.language);
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-language-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `navigator.languages`
* `navigator`
Navigator: mediaSession プロパティ
=============================

`Navigator` の読み取り専用プロパティである **`mediaSession`** は、`MediaSession` オブジェクトを返します。これは、文書内で扱われているメディアの現在の再生状態に関するメタデータやその他の情報をブラウザーと共有するために使用できます。

この情報は、端末の標準メディアコントロールユーザーがメディアの再生を記述し制御するために、端末や OS と共有されることがあります。

さらに、`MediaSession` インターフェイスは `setActionHandler()` メソッドを提供し、ユーザーが画面上または物理的に再生、一時停止、シーク、および他の同様のコントロールなどの機器の制御に関与するときのイベントを受信することができます。例えば、インターネットラジオアプリでは、`setActionHandler()` を使用して、キーボードやユーザー端末上の他の場所にあるメディアコントロールを使用して、アプリのメディア再生を制御できるようにすることができます。

値
-

現在の文書が使用できる `MediaSession` オブジェクトで、再生しているメディアとその現在の再生状態に関する情報を共有することができます。この情報には、再生中の曲のタイトル、アーティスト名、アルバム名などの典型的なメタデータに加え、アルバムアート、アーティスト写真などを含む 1 つ以上の画像が含まれる可能性があります。

例
-

この例では、メタデータは `mediaSession` オブジェクトに送信されます。このコードは、使用する前に `navigator.mediaSession` プロパティが利用できることを確認することから始めていることに注意してください。


```js
if ("mediaSession" in navigator) {
  navigator.mediaSession.metadata = new MediaMetadata({
    title: "Podcast Episode Title",
    artist: "Podcast Host",
    album: "Podcast Name",
    artwork: [{ src: "podcast.jpg" }],
  });
}
```

仕様書
---

| Specification |
| --- |
| Media Session # dom-navigator-mediasession |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: requestMIDIAccess() メソッド
===================================

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

`Navigator` インターフェイスの **`requestMIDIAccess()`** メソッドは、ユーザーのシステム上の MIDI デバイスへのアクセスの要求を表す `Promise` を返します。このメソッドは MIDI デバイスのアクセス、列挙、操作の方法を提供する Web MIDI API の一部です。

 このメソッドは、ユーザーにシステムで利用可能な MIDI デバイスへのアクセスを要求するプロンプトを表示する可能性もありますし、事前の設定に基づいてアクセスを許可または拒否する可能性もあります。
 許可が得られた場合は、`Promise` が解決し、`MIDIAccess` オブジェクトが返されます。

構文
--


```js
requestMIDIAccess()
requestMIDIAccess(MIDIOptions)
```

### 引数

`MIDIOptions` 省略可

メソッドに渡すオプションを表す `Object` です。以下のオプションがあります。

`sysex`

`Boolean` 値で、`true` に設定するとシステムエクスクルーシブ (sysex) メッセージを送受信する機能を許可します。デフォルト値は `false` です。

`software`

`Boolean` 値で、`true` に設定するとすべてのインストール済のソフトウェアシンセサイザーの使用をシステムに許可します。デフォルト値は `false` です。


### 返値

`MIDIAccess` オブジェクトで解決する `Promise` を返します。

### 例外

`AbortError` `DOMException`

ユーザーの操作によりドキュメントまたはページが閉じられたとき投げられます。

`InvalidStateError` `DOMException`

下層のシステムでエラーが発生したとき投げられます。

`NotSupportedError` `DOMException`

システムが機能またはオプションに対応していないとき投げられます。

`SecurityError` `DOMException`

ユーザーまたはシステムがアプリケーションによる要求されたオプションを持つ MIDIAccess オブジェクトの生成を拒否したか、ドキュメントがこの機能の使用を許可されていないとき (たとえば、Permission Policy で制限されているときや、ユーザーが以前に許可の要求を拒否しているとき) 投げられます。

セキュリティの要件
---------

この API へのアクセスは、以下の制約の対象です。

* このメソッドは安全なコンテキストで呼び出される必要があります。
* アクセスは `midi` HTTP Permission Policy で制限される可能性があります。
* ユーザーがユーザーエージェント固有のメカニズムによりこの API を使用する許可を明示的に与えるか、以前に許可を与えている必要があります。なお、Permission Policy でアクセスが拒否された場合は、ユーザーがアクセスを許可することはできません。

許可の状態は、Permissions API の `navigator.permissions.query()` メソッドに権限 `midi` および (省略可能な) `sysex` プロパティを設定した権限ディスクリプターを渡すことで取得できます。


```js
navigator.permissions.query({ name: "midi", sysex: true }).then((result) => {
  if (result.state === "granted") {
    // アクセスが許可されました
  } else if (result.state === "prompt") {
    // API を使用すると、許可を要求するプロンプトが表示されます
  }
  // ユーザープロンプトまたは Permission Policy でアクセスが拒否されました
});
```

例
-

### MIDI へのアクセスを要求する

以下の例では、`Navigator.requestMIDIAccess()` メソッドが `MIDIAccess` オブジェクトを返します。このオブジェクトは、入力および出力の MIDI ポートの情報へアクセスするのに用いることができます。


```js
navigator.requestMIDIAccess().then((access) => {
  // 利用可能な MIDI コントローラーのリストを取得する
  const inputs = access.inputs.values();
  const outputs = access.outputs.values();
  // …
});
```

仕様書
---

| Specification |
| --- |
| Web MIDI API # dom-navigator-requestmidiaccess |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Web MIDI API
* Introduction to Web MIDI
Navigator: cookieEnabled プロパティ
==============================

`navigator.cookieEnabled` は、クッキーが有効かどうかを示す論理値を返します。

このプロパティは読み取り専用です。

値
-

論理値です。

**メモ:** ブラウザーがサードパーティのクッキーをブロックするように構成されていた場合で、 `navigator.cookieEnabled` がサードパーティの iframe の中で呼び出された場合、 Safari, Edge Spartan, IE では `true` を返します (この場合にクッキーを設定しようとしても失敗するにもかかわらず)。 Firefox および Chromium ベースのブラウザーでは `false` を返します。

**メモ:** ウェブブラウザーは特定の場面で特定のクッキーを書き込むことを阻止することがあります。例えば、 Chrome ベースのブラウザーや、 Firefox の一部の実験的なバージョンでは、 `SameSite=None` 属性の付いたクッキーを作成することを許可しませんが、 HTTPS 上で生成され `Secure` 属性がある場合は例外です。

例
-


```js
if (!navigator.cookieEnabled) {
  // ブラウザーが対応していないか、クッキーが設定されることをブロックしています。
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-cookieenabled-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: vendor プロパティ
=======================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

`Navigator` の **`vendor`** プロパティの値は常に "`Google Inc.`"、"`Apple Computer, Inc.`"、（Firefox では）空文字列のいずれかです。

値
-

* "`Google Inc.`"、"`Apple Computer, Inc.`"、（Firefox では）空文字列のいずれかです。
仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-vendor-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: serviceWorker プロパティ
==============================

**`Navigator.serviceWorker`** は読み取り専用のプロパティで、 `ServiceWorkerContainer` オブジェクトを返します。これは関連付けられた文書で `ServiceWorker` の登録、削除、更新、通信へのアクセスを提供します。

この機能はプライベートモードでは利用できない可能性があります。

値
-

`ServiceWorkerContainer` です。

例
-

このコードは、ブラウザーがサービスワーカーに対応しているかをチェックします。


```js
if ("serviceWorker" in navigator) {
  // Supported!
}
```

仕様書
---

| Specification |
| --- |
| Service Workers # navigator-service-worker-attribute |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* サービスワーカー API
* サービスワーカーの使用
Navigator: ink プロパティ
====================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`ink`** は `Navigator` インターフェイスの読み取り専用プロパティで、現在の文書の `Ink` (en-US) オブジェクトを取得します。これはインク API (en-US) の機能へのアクセスを提供します。

値
-

`Ink` (en-US) オブジェクトです。

例
-


```js
async function inkInit() {
  const ink = navigator.ink;
  let presenter = await ink.requestPresenter({ presentationArea: canvas });

  //...
}
```

仕様書
---

| Specification |
| --- |
| Ink API # navigator-interface-extensions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Enhancing Inking on the Web
Navigator: clipboard プロパティ
==========================

クリップボード API は **`Navigator`** インターフェイスに読み取り専用の **`clipboard`** プロパティを追加し、これはクリップボードの内容を読み書きするために使用する `Clipboard` オブジェクトを返します。

クリップボード API は切り取り、コピー、貼り付け機能をウェブアプリケーションに実装するために使用することができます。

非同期のクリップボード読み書きメソッドを使用するには、ユーザーがウェブサイトやアプリにクリップボードへのアクセスを許可する必要があります。この許可は Permissions API から、 `"clipboard-read"` や `"clipboard-write"` の権限を取得する必要があります。

値
-

システムのクリップボードにアクセスするために使用される `Clipboard` オブジェクトです。

例
-

以下のコードは、クリップボードの内容を読み取る目的でシステムのクリップボードにアクセスするため、 `navigator.clipboard` を使用します。


```js
navigator.clipboard
  .readText()
  .then(
    (clipText) => (document.querySelector(".cliptext").innerText = clipText),
  );
```


このスニペットは、クラスが `"cliptext"` の要素の内容を、クリップボードのテキストコンテンツで置き換えます。おそらくこのコードは現在のクリップボードの内容を表示するブラウザー拡張機能に使用されているもので、定期的または特定のイベントが発生したときに自動的に更新されます。

クリップボードが空であるか、テキストが含まれていない場合、 `"cliptext"` の要素の内容はクリアされます。これは、クリップボードが空かテキストが含まれていない場合、 `readText()` が空文字列を返すからです。

仕様書
---

| Specification |
| --- |
| Clipboard API and events # navigator-clipboard |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: geolocation プロパティ
============================

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

**`Navigator.geolocation`** は読み取り専用のプロパティで、ウェブコンテンツが端末の位置情報にアクセスするための `Geolocation` オブジェクトを返します。これにより、ウェブサイトやアプリがユーザーの現在の位置に応じた結果を提供できるようになります。

**メモ:** セキュリティ上の理由により、ウェブページが位置情報にアクセスしようとする時、ユーザーにアクセス許可が求められます。その方法やポリシーはブラウザーによって異なることに注意してください。

値
-

`Geolocation` オブジェクトです。

仕様書
---

| Specification |
| --- |
| Geolocation API # dom-navigator-geolocation |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* 位置情報 API の使用
Navigator: onLine プロパティ
=======================

ブラウザーのオンライン状態を返します。このプロパティは、オンラインを意味する `true` とオフラインを意味する `false` の論理値を返します。このプロパティは、ブラウザーのネットワークへの接続状態が変化するたびに更新を送信します。更新は、ユーザーがリンクをたどったときや、スクリプトがリモートページを要求したときに発生します。例えば、ユーザーがインターネット接続を失った直後にリンクをクリックした場合、このプロパティは `false` を返します。

このプロパティの実装は、ブラウザーにより異なります。

Chrome および Safari は、ブラウザーがローカルエリアネットワーク (LAN) またはルーターに接続できないときにオフライン、それ以外の状況では `true` を返します。従って、`false` 値が返る場合はブラウザーがオフラインであると考えることができますが、`true` 値は必ずインターネットにアクセスできると考えることはできません。仮想イーサネットアダプタを持つ仮想化ソフトウェアを実行しているコンピュータでは常に「接続中」になるなど、誤検出になる可能性があります。よって、本当にブラウザーのオンラインである状態を検出したい場合は、チェックするための追加の手段を開発する必要があります。

Firefox では、ブラウザーをオフラインモードに切り替えると、 `false` 値が送信されます。 Firefox 41 までは、それ以外の条件では `true` 値が返されます。 Windows の Nightly 68 で実際の動作を確認したところ、 Chrome や Safari のように LAN 接続のみを確認しているため、誤検出が発生していました。

`online` および `offline` イベントを待ち受けすることにより、ネットワーク接続状態の変化を確認することができます。

値
-

論理値です。

例
-

### 基本的な使い方

オンラインであるかを確認するには、以下の例のように `window.navigator.onLine` を確認します。


```js
if (navigator.onLine) {
  console.log("online");
} else {
  console.log("offline");
}
```


ブラウザーが `navigator.onLine` に対応していない場合は、上記の例では常に `false`/`undefined` が返ります。

### ネットワーク状態の変化の待ち受け

ネットワーク接続状態の変化を確認するには、以下の例のように `addEventListener` を使用して、 `window.online` および `window.offline` を待ち受けします。


```js
window.addEventListener("offline", (e) => {
  console.log("offline");
});

window.addEventListener("online", (e) => {
  console.log("online");
});
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-online-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: locks プロパティ
======================

**`locks`** は `Navigator` インターフェイスの読み取り専用プロパティで、新しい`Lock` オブジェクトを要求するためのメソッドを提供する `LockManager` オブジェクトを返します。既存の `Lock` オブジェクトを照会します。

値
-

`LockManager` オブジェクト。

仕様書
---

| Specification |
| --- |
| Web Locks API # dom-navigatorlocks-locks |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: clearAppBadge() メソッド
===============================

`Navigator` インターフェイスの **`clearAppBadge()`** メソッドは、現在のアプリケーションのアイコンに設定されているバッジを `nothing` に設定し、非表示にします。値 `nothing` は現在バッジが設定されていないことを表し、バッジの状態は *cleared* になります。

構文
--


```js
clearAppBadge()
```

### 引数

なし

### 返値

`undefined` で解決する `Promise` を返します。

### 例外

`NotSupportedError` `DOMException`

`Navigator` に操作を実行する対象のドキュメントが無いとき投げられます。

例
-

アプリケーション内の全メッセージが読まれたら、`clearAppBadge()` を呼び出してバッジを非表示にし、通知を消去します。


```js
navigator.clearAppBadge();
```

仕様書
---

| Specification |
| --- |
| Badging API # clearappbadge-method |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Badging for app icons
Navigator: credentials プロパティ
============================

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

**`credentials`** は `Navigator` インターフェイスのプロパティで、リクエストの資格情報のメソッドを公開する `CredentialsContainer` (en-US) インターフェイスを返します。 `CredentialsContainer` (en-US) インターフェイスはログインやログアウトに成功した場合など、興味深いイベントが発生したことをユーザーエージェントに通知したりもします。このインターフェイスは機能検出に使用することができます。

値
-

`CredentialsContainer` (en-US) インターフェイスです。

例
-


```js
if ("credentials" in navigator) {
  navigator.credentials.get({ password: true }).then((creds) => {
    //資格情報付きで何かを行う
  });
} else {
  // 以前の方法でログインを扱う
}
```

仕様書
---

| Specification |
| --- |
| Credential Management Level 1 # framework-credential-management |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: getGamepads() メソッド
=============================

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

**`Navigator.getGamepads()`** メソッドは `Gamepad` の配列を返します。それぞれがこの端末に接続されているゲームパッドを表します。

セッション中にゲームパッドが切断された場合、配列の要素は `null` になる可能性がありますので、残りのゲームパッドは同じインデックスを保持します。

構文
--


```js
getGamepads()
```

### 引数

なし。

### 返値

`Gamepad` の配列 (`Array`) で、空になることもあります。

### 例外

`SecurityError` `DOMException`

権限ポリシーによって、この機能の使用がブロックされた場合。

例
-


```js
window.addEventListener("gamepadconnected", (e) => {
  const gp = navigator.getGamepads()[e.gamepad.index];
  console.log(
    `Gamepad connected at index ${gp.index}: ${gp.id} with ${gp.buttons.length} buttons, ${gp.axes.length} axes.`,
  );
});
```

仕様書
---

| Specification |
| --- |
| Gamepad # dom-navigator-getgamepads |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* ゲームパッド API の使用
* ゲームパッド API
Navigator: maxTouchPoints プロパティ
===============================

**`maxTouchPoints`** は `Navigator` インターフェイスの読み取り専用プロパティで、現在の端末で対応している同時タッチ接触点の最大数を返します。

値
-

数値です。

例
-


```js
if (navigator.maxTouchPoints > 1) {
  // ブラウザーがマルチタッチに対応
}
```

仕様書
---

| Specification |
| --- |
| Pointer Events # dom-navigator-maxtouchpoints |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: javaEnabled() メソッド
=============================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

このメソッドは常に false を返します。

構文
--


```js
javaEnabled()
```

### 引数

なし

### 返値

論理値 `false` です。

例
-


```js
if (window.navigator.javaEnabled()) {
  // コードが実行されることはありません。条件は常に false です
}
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-javaenabled |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator: oscpu プロパティ
======================

**`Navigator.oscpu`** プロパティは、現在のオペレーティングシステムを識別する文字列を返します。

値
-

文字列で、ブラウザーが実行されているオペレーティングシステムを識別する文字列を提供します。

| オペレーティングシステム | `oscpuInfo` の文字列形式 |
| --- | --- |
| OS/2 | `OS/2 Warp x (either 3, 4 or 4.5)` |
| Windows CE | `WindowsCE x.y` |
| Windows 64-bit (64-bit build) | `Windows NT x.y; Win64; x64` |
| Windows 64-bit (32-bit build) | `Windows NT x.y; WOW64` |
| Windows 32-bit | `Windows NT x.y` |
| Mac OS X (PPC build) | `PowerPC Mac OS X version x.y` |
| Mac OS X (i386/x64 build) | `Intel Mac OS X` または `macOS version x.y` |
| Linux 64 ビット (32 ビット版) | `uname -s` の出力結果に `i686 on x86_64`を加えたもの |
| Linux | `uname -sm` の出力結果 |

表中の `x.y` はオペレーティングシステムのバージョンを参照

例
-


```js
function osInfo() {
  alert(navigator.oscpu);
}

osInfo(); // alerts "Windows NT 6.0" for example
```

使用上の注意
------

コードが権限（クロームであるか、少なくとも UniversalBrowserRead 権限）を持っていない場合は、実際のプラットフォームの代わりに `general.oscpu.override` 設定の値が得られる可能性があります。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-oscpu |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
navigator: platform プロパティ
=========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

 ブラウザーのプラットフォームを表す文字列を返します。仕様書ではブラウザーが常に空文字列を返すことを許可していますので、信頼できる答えを得るためにこのプロパティを頼らないようにしてください。
 **`platform`** は `Navigator` インターフェイスの読み取り専用プロパティで、ユーザーのブラウザーが動作しているプラットフォームを特定する文字列を返します。

**メモ:** 一般的に、このようなメソッドやプロパティを使用してユーザー環境の情報を探そうとするコードを書くことは可能な限り避け、代わりに機能検出を行うコードを書くべきです。

値
-

ユーザーのブラウザーを実行しているプラットフォームを識別する文字列です。例えば、 `"MacIntel"`, `"Win32"`, `"Linux x86_64"`, `"Linux armv81"` です。

例
-

`navigator.platform` は常に避けて、機能検出を使うべきです。しかし、使用できる選択肢の中で、 `navigator.platform` が最悪の選択肢ではない場合があります。キーボードショートカットの修飾キーが（アップル以外のシステムで使用されている） `⌃` コントロールキーではなく、（アップルのシステムで使用されている） `⌘` コマンドキーであるというアドバイスをユーザーに表示させる必要がある場合です。


```js
let modifierKeyPrefix = "^"; // コントロールキー
if (
  navigator.platform.indexOf("Mac") === 0 ||
  navigator.platform === "iPhone"
) {
  modifierKeyPrefix = "⌘"; // コマンドキー
}
```


つまり、 `navigator.platform` が `"Mac"` で始まるか、または `"iPhone"` と完全に一致するかどうかを調べ、そのいずれかが真であるかどうかによって、ウェブアプリケーションの UI がキーボードショートカットでユーザーに押すようにアドバイスする修飾キーを選びます。

使用上のメモ
------

Windows では、現代のブラウザーは 64 ビット版の Windows で実行していても `"Win32"` を返します。

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-navigator-platform-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `navigator.userAgentData.platform`