サマリー: このチュートリアルでは、JavaScript Navigatorオブジェクトとそのプロパティについて学習します。
JavaScript Navigatorオブジェクトの紹介
JavaScript Navigatorは、Webブラウザとその機能に関する情報を提供します。読み取り専用プロパティwindow.navigatorからNavigatorオブジェクトを参照できます。
Navigatorオブジェクトには、ブラウザの情報を伝えるプロパティがあります。たとえば、userAgentはwindow.navigatorオブジェクトのプロパティです。Webブラウザを識別する長い文字列です。
window.navigator.userAgent
Code language: CSS (css)Google Chromeでは、次のような出力を表示できます
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36"
Code language: JSON / JSON with Comments (json)Google Chromeのバージョンによって、userAgentが少し異なる場合があります。
異なるWebブラウザは、標準化されていない特定の機能を提供しています。一部のWebブラウザではユーザーがuserAgentを変更して別のブラウザを使用しているように見せかけることができるため、userAgentを使用してWebブラウザを識別しない方がよいでしょう。
たとえば、次のコードを使用して、現在のWebブラウザがInternet Explorerかどうかを検出できます
if(navigator.userAgent.includes('MSIE')) {
// IE, use specific features of IE
} else {
// not IE
}
Code language: JavaScript (javascript)Webブラウザの特定の機能を使用するには、機能検出を使用できます。たとえば
if( typeof window.addEventListener === 'function' ) {
// let's use addEventListener
} else {
// addEventListener is not supported, use another way
}
Code language: JavaScript (javascript)javascript navigatorプロパティとメソッド
次の表は、JavaScriptのNavigatorプロパティとメソッドを示しています
| プロパティ/メソッド | 説明 |
|---|---|
| activeVrDisplays | presentingプロパティがtrueに設定されたすべてのVRDisplayインスタンスの配列を返します |
| appCodeName | Mozilla以外のブラウザでも「Mozilla」を返します。 |
| appName | ブラウザの完全な名前を返します。 |
| appVersion | ブラウザのバージョンを返します。ただし、通常はブラウザの実際のバージョンとは一致しません。 |
| battery | バッテリー状態APIと対話するためのBatteryManagerオブジェクトを返します |
| buildId | Webブラウザのビルド番号を返します。 |
| connection | ネットワーク情報APIと対話するためのNetworkInformationオブジェクトを返します |
| cookieEnabled | クッキーが有効な場合はtrueを返し、有効でない場合はfalseを返します。 |
| credentials | 資格情報管理APIと対話するためのCredentialsContainerを返します |
| deviceMemory | デバイスのメモリ容量をギガバイトで返します。 |
| doNotTrack | ユーザーのDoNotTrackの好みを返します。 |
| geolocation | Geolocation APIと対話するためのGeolocationオブジェクトを返します。 |
| getVRDisplays() | VRDisplayインスタンスがある場合は、その配列を返します。 |
| getUserMedia() | 利用可能なメディア機器ハードウェアに関連付けられたストリームを返します。 |
| hardwareConcurrency | デバイスのプロセッサコアの数を返します |
| javaEnabled | ブラウザでJavaが有効かどうかを調べます。 |
| language | ブラウザのプライマリ言語を返します。 |
| languages | ブラウザのすべての優先言語の配列を返します。 |
| locks | Web Locks API とインタラクトするための LockManager オブジェクトを返します。 |
| mediaCapabilities | Media capabilities API とインタラクトするための MediaCapabilities オブジェクトを返します。 |
| mediaDevices | 使用可能なメディアデバイスを返します。 |
| maxTouchPoints | デバイスのタッチスクリーンでサポートされる最大タッチポイント数を返します。 |
| mimeTypes | ブラウザに登録されている MIME タイプの配列を返します。 |
| onLine | ブラウザがインターネットに接続しているかどうかを指定します。 |
| oscpu | ブラウザが実行されているオペレーティングシステム (OS) および/または CPU です。 |
| permissions | Permissions API とインタラクトするための Permissions オブジェクトを返します。 |
| platform | ブラウザが実行されているシステムプラットフォームを返します。 |
| plugins | インストールされているブラウザのプラグインの配列を返します。 |
| product | 製品の名前を返します。 |
| productSub | 製品に関する追加情報を返します。 |
| registerProtocolHandler() | ウェブサイトを特定のプロトコルのハンドラーとして登録します。 |
| requestMediaKeySystemAccess() | MediaKeySystemAccess オブジェクトに解決される Promise を返します。 |
| sendBeacon() | 小さなペイロードを非同期で送信します。 |
| serviceWorker | ServiceWorker オブジェクトとのインタラクトに使用される ServiceWorkerContainer を返します。 |
| share() | 現在のプラットフォームのネイティブ共有メカニズムを呼び出します。 |
| storage | Storage API とインタラクトするための StorageManager オブジェクトを返します。 |
| userAgent | ブラウザのユーザーエージェント文字列を表します。 |
| vendor | ブラウザのブランド名を返します。 |
| vendorSub | ブラウザのベンダーに関する追加情報を返します。 |
| vibrate() | 振動がサポートされている場合、デバイスを振動させます。 |
| webdriver | ブラウザが現在自動制御されているかどうかを判断します。 |
今回のチュートリアルはためになりましたか?