Navigatorオブジェクト

javascript

Navigatorオブジェクト

Navigatorオブジェクトを試してみます。
Navigatorオブジェクトはブラウザ関係の情報が格納されています。

下記にサンプルコードを書いてみます。

let navi1 = navigator.userAgent;
console.log('navi1 -> ' + navi1);

let navi2 = navigator.appName;
console.log('navi2 -> ' + navi2);

let navi3 = navigator.appVersion;
console.log('navi3 -> ' + navi3);

let navi4 = navigator.platform;
console.log('navi4 -> ' + navi4);

let navi5 = navigator.oscpu;
console.log('navi5 -> ' + navi5);

上記を実行すると、下記のような結果になります。

navi1 -> Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0
navi2 -> Netscape
navi3 -> 5.0 (Windows)
navi4 -> Win32
navi5 -> Windows NT 10.0; Win64; x64

検証に使用したブラウザはFirefoxで、同じコードをChromeで確認すると、次のようになります。

navi1 -> Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36
navi2 -> Netscape
navi3 -> 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36
navi4 -> Win32
navi5 -> undefined

ただ、値の4つめ「navi4」のplatformについては、検証に使っているOSが64bit版windows10ですが、なぜかWin32という出力になります。
これはブラウザ間の出力を統一する為に、先にChromeが「Win32」という出力をする作りにした為、その後にFirefoxがChromeの出力に合わせ、ブラウザが返すOS情報を統一して出力するようになったという歴史的背景があるようです。
こちらのサイト「Firefox サイト互換性情報」にその辺りの説明が詳しく記述されています。

また、5つめの「navi5」についてはChromeでは定義されておらず、undefinedになります。
この辺りもブラウザ間で微妙に差異がある為、プログラム実装時には注意が必要と言えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です