recursal/MDN huggingface dataset:
Navigator: vendorSub プロパティ
==========================

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

**`Navigator.vendorSub`** プロパティの値は、どのブラウザーでも常に空文字列です。

### 値

* 空文字列です。
仕様書
---

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

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Navigator.vibrate()
===================

**`Navigator.vibrate()`** メソッドは、端末のバイブレーションハードウェアがあればパルスを送ります。端末がバイブレーションに対応していない場合は、このメソッドは効果はありません。このメソッドが呼び出されたときに、すでにバイブレーションパターンが進行中であった場合は、前のパターンが停止され、代わりに新しいパターンが始まります。

引数が無効であるためこのメソッドがバイブレーションを実行できなかった場合は `false` を返し、それ以外の場合は `true` を返します。パターンによってとても長いバイブレーションが指定された場合は、短縮されます。最大長は実装に依存します。

構文
--
```

var successBool = window.navigator.vibrate(pattern);
```


`pattern`

バイブレーションと停止の間隔のパターンを提供します。それぞれの値はミリ秒単位の数値でバイブレーションと停止の長さを交互に表します。単一の値 (そのミリ秒だけ一度バイブレーションを行う) か、値の配列でバイブレーション、停止、再度バイブレーションと交互の値の配列で指定することができます。詳しくは Vibration API (en-US) を参照してください。

`0` の値、空の配列、すべての値がゼロである配列を渡すと、現在進行中のバイブレーションパターンをすべて中止します。

例
-


```js
window.navigator.vibrate(200); // vibrate for 200ms
window.navigator.vibrate([
  100, 30, 100, 30, 100, 30, 200, 30, 200, 30, 200, 30, 100, 30, 100, 30, 100,
]); // モールス信号で 'SOS' とバイブレーションします。
```

仕様書
---

| Specification |
| --- |
| Vibration API (Second Edition) # dom-navigator-vibrate |

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

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

関連情報
----

* Vibration API (en-US)
Navigator: mediaCapabilities プロパティ
==================================

**`Navigator.mediaCapabilities`** プロパティは読み取り専用で、メディア能力 API (en-US) で定義されています。
 指定された形式のエンコードとデコードおよび出力能力についての情報が取得できる `MediaCapabilities` (en-US) オブジェクトを返します。

値
-

`MediaCapabilities` (en-US) オブジェクト。

例
-


```js
navigator.mediaCapabilities
  .decodingInfo({
    type: "file",
    audio: {
      contentType: "audio/mp3",
      channels: 2,
      bitrate: 132700,
      samplerate: 5200,
    },
  })
  .then((result) => {
    console.log(
      `This configuration is ${result.supported ? "" : "not "}supported,`,
    );
    console.log(`${result.smooth ? "" : "not "}smooth, and`);
    console.log(`${result.powerEfficient ? "" : "not "}power efficient.`);
  });
```

仕様書
---

| Specification |
| --- |
| Media Capabilities # dom-navigator-mediacapabilities |

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

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

関連情報
----

* メディア能力 API (en-US)
* `Navigator`
Navigator.getUserMedia()
========================

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

非推奨の **`Navigator.getUserMedia()`** メソッドは、最大 1 系統の動画入力機器（カメラや共有画面など）および最大 1 系統の音声入力機器（マイクなど）を `MediaStream` のソースとして使用する許可をユーザーに求めます。

許可が与えられた場合、それらの機器から動画や音声のトラックを持つ `MediaStream` が、指定された成功コールバックに配信されます。許可が拒否された場合や、互換性のある入力機器が存在しない場合、その他のエラー条件が発生した場合は、何が問題となったかを説明する `MediaStreamError` オブジェクトを伴ってエラーコールバックが実行されます。ユーザーがまったく選択をしなかった場合は、どちらのコールバックも実行されません。

**メモ:** これは古いメソッドです。代わりに新しい `navigator.mediaDevices.getUserMedia()` を使用してください。技術的には非推奨ではありませんが、この古いコールバックの版はそのようにマークされていますので、新しいプロミスを返す版を使用するよう強くお勧めします。

構文
--


```js
getUserMedia(constraints, successCallback, errorCallback);
```

### 引数

`constraints`

要求するメディアの種類と、それぞれの種類に対する要求事項を指定するオブジェクトです。詳細は、最新の `MediaDevices.getUserMedia()` メソッドの定数の節と、能力、制約、そして設定の記事を参照してください。

`successCallback`

メディアアクセスの要求が承認されたときに呼び出される関数です。この関数は、メディアストリームを含む `MediaStream` オブジェクトの単一の引数で呼び出されます。コールバックは、次の例のようにストリームを任意のオブジェクト (`<audio>` や `<video>` 要素など) に割り当てることができます。


```js
function(stream) {
   const video = document.querySelector('video');
   video.srcObject = stream;
   video.onloadedmetadata = function(e) {
      // Do something with the video here.
   };
}
```


`errorCallback`

呼び出しが失敗した場合、 `errorCallback` で指定され、`MediaStreamError` が唯一の引数に与えられた関数が呼び出されますこのオブジェクトは、`DOMException` をひな形としています。発生しうるエラーの一覧は、以下のエラーを参照してください。

### 返値

なし (`undefined`)。

例
-

### 幅と高さ

これは、様々のブラウザーの接頭辞に対処したコードを含む、 `getUserMedia()` の使用例です。ただし、これは非推奨の使用方法なので注意してください。現在の API の使用例は、`MediaDevices.getUserMedia()` 下の例の節を参照してください。


```js
navigator.getUserMedia =
  navigator.getUserMedia ||
  navigator.webkitGetUserMedia ||
  navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
  navigator.getUserMedia(
    { audio: true, video: { width: 1280, height: 720 } },
    function (stream) {
      const video = document.querySelector("video");
      video.srcObject = stream;
      video.onloadedmetadata = function (e) {
        video.play();
      };
    },
    function (err) {
      console.log("The following error occurred: " + err.name);
    },
  );
} else {
  console.log("getUserMedia not supported");
}
```

許可設定
----

インストール可能なアプリで `getUserMedia()` を使用するには、マニフェストファイル内で以下のフィールドのいずれか、または両方を指定する必要があります。


```js
"permissions": {
  "audio-capture": {
    "description": "Required to capture audio using getUserMedia()"
  },
  "video-capture": {
    "description": "Required to capture video using getUserMedia()"
  }
}
```


詳しい情報は、permission: audio-capture および permission: video-capture を参照してください。

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

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

**警告:** 新しいコードでは代わりに `MediaDevices.getUserMedia` を使用してください。

関連情報
----

* この非推奨のメソッドに代わる `MediaDevices.getUserMedia()`。
* WebRTC - この API の入門ページ
* MediaStream API - メディアストリームオブジェクト向けの API
* ウェブカメラでの写真撮影 (en-US) - `getUserMedia()` を使って、動画ではなく写真を撮るためのチュートリアル
Navigator: gpu プロパティ
====================

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

**`Navigator.gpu`** は読み取り専用のプロパティで、 WebGPU API のエントリーポイントである現在の閲覧コンテキストの `GPU` オブジェクトを返します。

値
-

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

例
-


```js
async function init() {
  if (!navigator.gpu) {
    throw Error("WebGPU not supported.");
  }

  const adapter = await navigator.gpu.requestAdapter();
  if (!adapter) {
    throw Error("Couldn't request WebGPU adapter.");
  }

  const device = await adapter.requestDevice();

  //...
}
```

仕様書
---

| Specification |
| --- |
| WebGPU # navigator-gpu |

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

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

関連情報
----

* WebGPU API
Navigator: connection プロパティ
===========================

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

**`Navigator.connection`** は読み取り専用のプロパティで、ユーザーの端末の現在の帯域幅や、接続が測定されているかどうかなどのシステムの接続に関する情報を含む `NetworkInformation` を返します。

ユーザーの接続に基づいて、高解像度と低解像度のどちらのコンテンツを使うかの選択に使用できます。

値
-

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

仕様書
---

| Specification |
| --- |
| Network Information API # connection-attribute |

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

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

関連情報
----

* オンライン／オフラインイベント
Navigator.sendBeacon()
======================

**`navigator.sendBeacon()`** メソッドは、ウェブサーバーに非同期に少量のデータを HTTP で送るために使用することができます。

構文
--
```

navigator.sendBeacon(url, data);
```

### 引数

`url`

*data* を受け取る URL です。相対でも絶対でも可能です。

`data`

送るデータを含む `ArrayBuffer`, `ArrayBufferView` (en-US), `Blob`, `DOMString`, `FormData`, `ReadableStream`, `URLSearchParams` のいずれかのオブジェクトです。

### 返値

**`sendBeacon()`** メソッドが `true` を返した場合は、ユーザーエージェントが転送のために `data` をキューに入れることに成功したことを表します。それ以外の場合は `false` を返します。

解説
--

このメソッドは、アナリティクスや診断のために、データの送信が早すぎるとデータ収集の機会を失う可能性があるような場合、文書がアンロードされる前にサーバーにデータを送信するものです。例えば、他のページに移動してページがアンロードされる前にユーザーがどのリンクをクリックしたかなどです。

文書のアンロード時に確実にデータが送信されるようにするのは開発者にとってずっと難しいことでした。ユーザーエージェントは通常 `unload` ハンドラーの中で生成された非同期 `XMLHttpRequest` を無視するからです。

伝統的には、これは以下のような回避方法を使用して、ある URL にデータを送信するまでページのアンロードを遅らせるよう位置づけられていました。

* ブロックする同期 `XMLHttpRequest` の呼び出しを `unload` または `beforeunload` イベントハンドラーの中で行い、データを送信する。
* `<img>` 要素を作成し、その `src` を `unload` ハンドラーの中で設定する。ほとんどのユーザーエージェントは画像を読み込むためにアンロードを遅延させる。
* `unload` ハンドラー内で何もしないループを作成する。

これらの方法はすべて、文書のアンロードをブロックするので、次への遷移が遅くなります。次のページがこれをやめさせる方法は存在しないので、前のページの問題であるにもかかわらず、次のページが遅いように見えます。

次の例は `unload` ハンドラーで同期 `XMLHttpRequest` を送ってサーバにデータを送信しようとする理論的なアナリティクスのコードです。これは、次のページの読み込みが遅らせられる結果になります。


```js
window.addEventListener("unload", function logData() {
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "/log", false); // third parameter of `false` means synchronous
  xhr.send(analyticsData);
});
```


これが **`sendBeacon()`** で置き換わるところです。 `sendBeacon()` メソッドにより、ユーザーエージェントが行う機会があればデータが非同期に送信され、アンロードや次への遷移が遅れることはありません。**これはアナリティクスのデータを送信する際の問題をすべて解決します。**

* データの送信の信頼性が高い
* 非同期に送信される
* 次のページの読み込みへの影響がない
* 加えて、どの古いテクニックよりも簡単にコードを書くことができる。

次の例は、 `sendBeacon()` メソッドを使用してサーバーにデータを送信する、理論的なアナリティクスのコードパターンです。


```js
window.addEventListener("unload", function logData() {
  navigator.sendBeacon("/log", analyticsData);
});
```


ビーコンは HTTP リクエストを POST メソッドで送信し、関連する Cookie も呼び出し時にすべて利用できます。

仕様書
---

| Specification |
| --- |
| Beacon # sendbeacon-method |

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

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

関連情報
----

* `navigator`
Navigator: appCodeName プロパティ
============================

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

**`Navigator.appCodeName`** プロパティの値は、どのブラウザーでも常に "`Mozilla`" です。このプロパティは互換性のためだけに維持されています。

**メモ:** このプロパティが実際の製品名を返すことを期待しないでください。どのブラウザーもこのプロパティの値として "`Mozilla`" を返します。

値
-

"`Mozilla`" という文字列です。

仕様書
---

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

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

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

関連情報
----

* `Navigator.appName`
* `Navigator.product`
Navigator: globalPrivacyControl プロパティ
=====================================

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

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

**`Navigator.globalPrivacyControl`** プロパティはユーザーのグローバルプライバシー制御設定を返します。この設定は、ウェブサイトやサービスワーカースクリプトがユーザーの個人情報を第三者に販売したり、共有したりすることにユーザーが同意するかどうかを示します。

プロパティの値は、 `Sec-GPC` (en-US) HTTP ヘッダーの値を反映します。

| Sec-GPC 値 | 意味 |
| --- | --- |
| 1 | ユーザーは、自分のデータを販売または共有することに同意していません。 |
| 0 | ユーザーは、データの販売または共有に同意しました。 |
| unspecified | ユーザーはデータに関してまだ同意していません。 |

例
-


```js
console.log(navigator.globalPrivacyControl);
// prints "1" indicating user does not want their data shared or sold.
// prints "0" if the user consents to their data being shared or sold.
// prints "unspecified" if Sec-GPC header is not present.
```

仕様書
---

#### No specification found

No specification data found for `api.Navigator.globalPrivacyControl`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

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

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

関連情報
----

* `Sec-GPC` (en-US) ヘッダー
* globalprivacycontrol.org
* Global Privacy Control Spec
* Do Not Track on Wikipedia
Navigator: permissions プロパティ
============================

**`Navigator.permissions`** は読み取り専用プロパティで、権限 API の対象となる API のパーミッションの状態を照会および更新するために使用できる `Permissions` オブジェクトを返します。

値
-

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

例
-


```js
navigator.permissions.query({ name: "geolocation" }).then((result) => {
  if (result.state === "granted") {
    showMap();
  } else if (result.state === "prompt") {
    showButtonToEnableMap();
  }
  // パーミッションが拒否された場合は、何もしないでください。
});
```

仕様
--

| Specification |
| --- |
| Permissions # dom-navigator-permissions |

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

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

関連情報
----

* 権限 API
* `Navigator`
Navigator: setAppBadge() メソッド
=============================

`Navigator` インターフェイスの **`setAppBadge()`** メソッドは、このアプリケーションに関連付けられたアイコン上のバッジを設定します。メソッドに値を渡した場合は、この値をバッジの値として設定します。値を渡さなかった場合は、バッジは点、もしくはプラットフォームで定義されたその他の表示になります。

構文
--


```js
setAppBadge()
setAppBadge(contents)
```

### 引数

`contents` 省略可

バッジの値として用いる `number` です。`contents` が `0` の場合は、バッジは `nothing` に設定され、非表示になります。

### 返値

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

### 例外

`NotSupportedError` `DOMException`

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

例
-

以下の例では、未読カウントを `setAppBadge()` に渡します。その結果、バッジは `30` を表示するはずです。


```js
const unread = 30;
navigator.setAppBadge(unread);
```

仕様書
---

| Specification |
| --- |
| Badging API # setappbadge-method |

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

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

関連情報
----

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

**`userActivation`** は `Navigator` インターフェイスの読み取り専用プロパティで、現在のウインドウのユーザーによる有効化の状態についての情報を持つ `UserActivation` オブジェクトを返します。

値
-

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

例
-

### 最近ユーザーによる操作が行われたかをチェックする

ユーザーが最近ページを操作したか (一時的な有効化) をチェックするために `UserActivation.isActive` を使用します｡


```js
if (navigator.userActivation.isActive) {
  // 例えば､メディアの再生の要求に進む
}
```

### これまでにユーザーによる操作が行われたかをチェックする

ユーザーがこれまでにページを操作したか (粘着的な有効化) をチェックするために `UserActivation.hasBeenActive` を使用します｡


```js
if (navigator.userActivation.hasBeenActive) {
  // 例えば､アニメーションの自動再生に進む
}
```

仕様書
---

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

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

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

関連情報
----

* `UserActivation`
* `UserActivation.hasBeenActive`
* `UserActivation.isActive`
* ユーザーによる有効化によって制御される機能
Navigator.getBattery()
======================

**`getBattery()`** メソッドは、システムのバッテリーに関する情報を提供します。これは `BatteryManager` (en-US) オブジェクトで解決されるバッテリーのプロミスを返し、バッテリーの状態を監視するために処理できるいくつかの新しいイベントを提供します。これはバッテリー状態 API を実装しています。詳細、API の使用ガイド、サンプルコードについては、そのドキュメントを参照してください。

**メモ:** ブラウザーによっては、この機能へのアクセスは `Feature-Policy` の `battery` ディレクティブで制御されます。

構文
--


```js
getBattery()
```

### 引数

なし。

### 返値

解決されると、バッテリーの状態に関する情報を取得するために使用できる `BatteryManager` (en-US) オブジェクトを単一の引数として持つ履行ハンドラーを呼び出す `Promise` です。

例外
--

このメソッドは真の例外を発生させません。代わりに、返されたプロミスが拒否され、 `DOMException` の中に `name` を次のうちの一つに設定します。

`SecurityError`

ユーザーエージェントは安全でないコンテキストではバッテリー情報を公開しませんが、このメソッドが安全でないコンテキストから呼び出されました。

**メモ:** 一部のユーザーエージェントの古いバージョンでは、安全でないコンテキストでこの機能の利用を許可していることがあります。

`NotAllowedError`

現在この例外を発生させるユーザーエージェントはありませんが、仕様書では以下のような動作が記述されています。

> 
> 
>  この文書ではこの機能の使用が許可されていません。
>  例えば、 `Feature-Policy` `battery` 機能を介して明示的に許可されてなかったり、制限されていたりした場合です。
>  
> 
> 
> 

例
-

この例では、バッテリーの現在の充電状態を取得し、充電状態が変化するたびに充電状態が記録されるように、 `chargingchange` (en-US) イベントのハンドラーを確立します。


```js
let batteryIsCharging = false;

navigator.getBattery().then((battery) => {
  batteryIsCharging = battery.charging;

  battery.addEventListener("chargingchange", () => {
    batteryIsCharging = battery.charging;
  });
});
```


その他の例や詳細については、バッテリー状態 APIを参照してください。

仕様書
---

| Specification |
| --- |
| Battery Status API # dom-navigator-getbattery |

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

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

関連情報
----

* バッテリー状態 API
* `Feature-Policy` の `battery` 機能
Navigator: userAgentData プロパティ
==============================

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

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

**`userAgentData`** は `Navigator` インターフェイスの読み取り専用プロパティで、 `NavigatorUAData` オブジェクトを返します。これを使用して、ユーザーエージェントクライアントヒント API へアクセスすることができます。

値
-

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

例
-

以下の例は、 `NavigatorUAData.brands` の値をコンソールに表示するものです。


```js
console.log(navigator.userAgentData.brands);
```

仕様書
---

| Specification |
| --- |
| User-Agent Client Hints # dom-navigatorua-useragentdata |

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

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

関連情報
----

* Improving user privacy and developer experience with User-Agent Client Hints
Navigator.getVRDisplays()
=========================

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

**`getVRDisplays()`** は `Navigator` インターフェイスのメソッドで、コンピューターに接続されている利用可能な VR 機器を表す `VRDisplay` オブジェクトの配列へ解決するためのプロミスを返します。

構文
--


```js
getVRDisplays();
```

### 引数

なし。

### 返値

`VRDisplay` オブジェクトの配列へ解決するためのプロミスです。

例
-

コード例については `VRDisplay` を参照してください。

仕様書
---

#### No specification found

No specification data found for `api.Navigator.getVRDisplays`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

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

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

関連情報
----

* WebVR API
Navigator: xr プロパティ
===================

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

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

**`xr`** は `Navigator` インターフェイスによって提供される読み取り専用プロパティで、WebXR 機器 API へのアクセスに使用できる `XRSystem` オブジェクトを返します。

値
-

現在のコンテキストで WebXR 機器 API とのインターフェイスに使用する `XRSystem` オブジェクト。 これを使用して、拡張現実や仮想現実の画像をユーザーに提示することができます。

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

それぞれの `Window` には独自の `Navigator` のインスタンスがあり、`window.navigator` または単に `navigator` としてアクセスできます。 同時に、新しい `XRSystem` インスタンスも作成され、`navigator.xr` として `navigator` インスタンスにアタッチされます。 `xr` プロパティが存在する場合は、それを使用して WebXR 機器 API にアクセスできます。

WebXR が利用可能かどうかを判断するには、次のようにします。


```js
if ("xr" in window.navigator) {
  /\* WebXR can be used! \*/
} else {
  /\* WebXR isn't available \*/
}
```

仕様
--

| Specification |
| --- |
| WebXR Device API # navigator-xr-attribute |

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

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

関連情報
----

* WebGL API: ウェブの 2D および 3D グラフィック
* Canvas API: 簡単な 2D グラフィック API
Navigator: serial プロパティ
=======================

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

**`serial`** は `Navigator` インターフェイスの読み取り専用プロパティで、ウェブシリアル API のエントリーポイントを表す `Serial` オブジェクトを返します。

読み取り時、常に同じ `Serial` オブジェクトのインスタンスが返ります。

値
-

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

例
-

この例では、`getPorts()` メソッドを用いて利用可能なポートのリストを初期化します。


```js
navigator.serial.getPorts().then((ports) => {
  // ページが読み込まれた時、`ports` を用いて利用可能なポートのリストを初期化します。
});
```

仕様書
---

| Specification |
| --- |
| Web Serial API # extensions-to-the-navigator-interface |

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

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

関連情報
----

* シリアルポートとの読み書き
* Getting started with the web serial API
Navigator: wakeLock プロパティ
=========================

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

**`wakeLock`** は読み取り専用のプロパティで、 `WakeLock` インターフェイスを返します。これにより、文書が画面起動ロックを取得することができます。画面起動ロックが有効であれば、ユーザーエージェントは端末が画面を暗くしたり、画面を完全にオフにしたり、スクリーンセーバーを表示したりすることを防ぐよう試みることができます。

構文
--


```js
navigator.wakeLock
```

仕様書
---

| Specification |
| --- |
| Screen Wake Lock API # extensions-to-the-navigator-interface |

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

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

関連情報
----

* `WakeLock.request()`
* 画面起動ロック API
* ブログ投稿 - Stay awake with the Screen Wake Lock API
Navigator: userAgent プロパティ
==========================

**`Navigator.userAgent`** は読み取り専用のプロパティで、現在のブラウザーのユーザーエージェント文字列を返します。

**メモ:** 仕様書では、ブラウザーがこのフィールドを介して提供する情報をできるだけ少なくすることを求めています。このプロパティの値は、同じブラウザーの将来のバージョンでも同じままであると仮定してはいけません。まったく使用しないようにしたり、ブラウザーの現在のバージョンと過去のバージョンのためだけに使用するようにしてください。新しいブラウザーは、古いブラウザーと同じ UA、またはその一部を使い始めるかもしれません。ブラウザーエージェントが本当にこのプロパティによって広告されたものであるという保証は本当にありません。

また、ブラウザーのユーザーはこのフィールドの値を変更することができることを覚えておいてください (UA なりすまし)。

ユーザーエージェント文字列の検出に基づくブラウザーの識別は**信頼できず**、ユーザーエージェント文字列はユーザーが設定可能なので**推奨されません**。例えば、以下のようになります。

* Firefox では、 about:config の `general.useragent.override` 設定を使って変更することができます。一部の Firefox 拡張機能でも設定可能です。しかし、これは取得する HTTP ヘッダーと `navigator.userAgent` が返す HTTP ヘッダーを変更するだけです。
 他にも JavaScript コードを利用してブラウザー識別を行うメソッドがあるかもしれません。
* Opera 6 以降では、メニューからブラウザー識別文字列を設定できます。
値
-

文字列で、ブラウザーが HTTP ヘッダーで提供する完全なユーザーエージェント文字列と、 `Navigator` オブジェクト上のメソッドやその他の関連メソッドへのレスポンスを指定します。

ユーザーエージェント文字列は形式的な構造に基づいて構築されており、いくつかの情報に分解することができます。これらの情報の各部分は、ユーザ－が設定可能な他の Navigator のプロパティから来ています。Gecko ベースのブラウザは以下の一般的な構造に準拠しています。
```

userAgent = appCodeName/appVersion number (Platform; Security; OS-or-CPU;
Localization; rv: revision-version-number) product/productSub
Application-Name Application-Name-version
```

例
-


```js
alert(window.navigator.userAgent);
// alerts "Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape6/6.1"
```

仕様書
---

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

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

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

関連情報
----

* `User-Agent` HTTP ヘッダー
Navigator: appVersion プロパティ
===========================

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

"`4.0`" またはそのブラウザーのバージョン情報を表す文字列のどちらかを返します。

**メモ:** このプロパティがブラウザーの正しいバージョンを返すことを期待しないでください。

値
-

"`4.0`" またはそのブラウザーのバージョン情報を表す文字列のどちらかです。

例
-


```js
alert(
  `このブラウザーのバージョンは ${navigator.appVersion} と報告されています。`,
);
```

注
-

`window.navigator.userAgent` プロパティもバージョン番号を含んでいる場合がありますが ("`Mozilla/5.0 (Windows; U; Win98; en-US; rv:0.9.2) Gecko/20010725 Netscape 6/6.1`" など)、ユーザーエージェント文字列を変更したり、他のブラウザー、プラットフォーム、ユーザーエージェントに「偽装」したり、ブラウザーベンダー自身がこれらのプロパティに無頓着であったりすることを意識しておいてください。

`window.navigator.appVersion`, `window.navigator.appName`, `window.navigator.userAgent` の各プロパティは、「ブラウザー推定」 (browser sniffing) コード、すなわち使用しているブラウザーを検出し、それに従ってページを調整しようとするスクリプトで使われてきました。これにより、一部のウェブサイトから拒否されないようにするために、ブラウザーがこれらのプロパティで偽の情報を返さなければならないという現在の状況が発生したのです。

仕様書
---

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

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

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