[解決済み] 今日現在、navigator.platformに指定できる値の一覧は何ですか?[クローズド]
質問
これが頻繁に変更されることは分かっていますが
navigator.platform
?
ここまでのリスト
- HP-UX
- Linux i686
- Linux armv7l
- Mac68K
- MacPPC
- マッキントッシュ
- SunOS
- Win16
- Win32
- WinCE
- iPhone
- iPod
- iPad
- アンドロイド
- ブラックベリー
- オペラ
どのように解決するのですか?
免責事項です。
このプロパティはブラウザから送信されるため、ユーザーエージェント文字列と同様に偽装することができることに注意してください。決して
navigator
オブジェクトが完全に正確であることに依存しないでください。
定義
私が知る限り、このプロパティがかなり前から存在しているにもかかわらず、すべての可能な `navigator.platform` 値の単一の公開リストがありません。さらに悪いことに、このプロパティの定義は長年にわたって変更されてきました。以前は
navigator.platform
はブラウザがコンパイルされたマシンの種類を表します。
これは基本的に、このプロパティが返す
Win16
を返すことができるということです。
もちろん、W3Schools は古い定義を掲載しています (リンクするつもりもありません)。 W3 と MDN は異なる定義で合意していますが。
navigator.platform
はブラウザが実行されているプラットフォームを表します。
それでも、この定義は少し曖昧です。一昔前であれば、「プラットフォーム」は CPU アーキテクチャかオペレーティング システムのどちらかでした。近年では、ハンドヘルド デバイスやメディア デバイスもプラットフォームとなりえます。
解釈
Web 上のすべてのものと同様に、私たちの運命は強力なブラウザ ベンダーの手に委ねられています。この場合、すべての主要なブラウザ (IE、Safari、Firefox、Chrome) は、私の 64 ビット Windows マシンが `Win32` プラットフォームであることに同意しています。つまり、64ビット用にコンパイルされたものがないため、Windowsに関しては古い定義に固執しているのです。しかし、明るい面を見ましょう。少なくとも、今回だけは全員が何かに同意しているのです。
携帯機器やメディア機器に関しては、私たちは少し幸運なようです。あなたがすでに質問で述べているように、iPhone、iPod、iPadは、すべて同じオペレーティングシステムを実行しているにもかかわらず、それぞれ独自の価値を持っています。任天堂やソニーのデバイスも、すべてユニークな値を返しています。ですから、今だけ
navigator.platform
がおもしろく見えてきました。
しかし、そこにiPhone用のOpera Miniがやってきて、再び事態を混乱させます。Opera Mini は実際にはコード エンジンのバージョン番号を返しますが、これは完全に異なる解釈で
platform
の解釈は、これまで私たちが遭遇してきたものとはまったく異なっています。今、私たちは振り出しに戻り、なぜこのテーマに関する情報が少ないのかを理解し始めています。
解釈はさまざまで、完全な答えを持っているわけではありませんが、navigator.platform
プロパティを研究している他の人のために、2 つの意見を加えるべきだと思いました。
リスト
以下は、複数のソースで検証できた、私が知っている値の (間違いなく非限定的な) リストです。定義が曖昧なため、これらを順序付ける最善の方法は何なのか、あまりよく分かりません。今のところ、オペレーティング システムやデバイス ブランドに基づいていくつかのカテゴリーに分け、該当する場合は追加情報とリリース日をリストアップしました。アンドロイド
Android端末のテストは本当に難しいです。Android端末は
Android
を Linux のバージョンと同じくらい頻繁に返します。たとえば、Nexus 5 の携帯電話では、Android ブラウザと Chrome の両方が
Linux armv7l
. まれに、Android デバイスは
null
を返すこともあります (代わりに
undefined
).
-
Android
(2008) -
Linux
上記の注意事項を参照してください。 -
null
アップル
iOS に関しては。Safari、Chrome、Mercury は同意しますが、Opera は混乱します。
-
iPhone
(2007) -
iPod
(2007) -
iPad
(2010) -
iPhone Simulator
: Xcode に同梱されているシミュレータ -
iPod Simulator
Xcode と共に出荷されるシミュレータです。 -
iPad Simulator
Xcode と共に出荷されるシミュレータです。 -
Macintosh
-
MacIntel
: インテル プロセッサー (2005年) -
MacPPC
: PowerPC プロセッサ -
Mac68K
: 68000 プロセッサ -
Pike v7.6 release 92
: すべての iPhone で Opera Mini 5 を利用可能に (2009年) -
Pike v7.8 release 517
: すべての iPhone で Opera Mini 7 を利用可能に (2012年)
BlackBerry
-
BlackBerry
(2003)
FreeBSD
-
FreeBSD
-
FreeBSD i386
: x86 (IA-32) プロセッサ -
FreeBSD amd64
: AMD x86-64 プロセッサ
Linux
多くのプラットフォームがこれをベースに構築されているため、マジで信頼性が低い。たとえば、ChromeOS 上の Chrome や Linux x86-64 では、どちらも
Linux i686
を返します。
Linux ARM はアーキテクチャフラグをリストアップしていることに注意してください、例えば
armv5tej
は、Thumb サポート ('T')、DSP 命令セット ('E')、および Jazelle サポート ('J') を備えた v5 ARM アーキテクチャを表わします。
-
Linux
-
Linux aarch64
-
Linux armv5tejl
-
Linux armv6l
-
Linux armv7l
-
Linux armv8l
-
Linux i686
-
Linux i686 on x86_64
-
Linux i686 X11
: X11 Window System をベースとした -
Linux MSM8960_v3.2.1.1_N_R069_Rev:18
: ソニー Xperia V -
Linux ppc64
-
Linux x86_64
-
Linux x86_64 X11
: X11 Window System をベースとした
マイクロソフト
64 ビットの Windows 8 でさえも、それらはすべて
Win32
.
-
OS/2
(1994†) -
Pocket PC
-
Windows
-
Win16
: Windows 3.1x (1992†) -
Win32
: Windows 95 以上 -
WinCE
Mozilla (Firefox OS)
Firefox OSのWebブラウザでは、空の文字列が返されます。参照 このバグレポート .
カイオス
KaiOSのウェブブラウザ(Firefoxベース)も空文字列を返します(Firefox OSと同じ)。参照 このバグレポート .
任天堂
-
New Nintendo 3DS
(2014) -
Nintendo DSi
(2008) -
Nintendo 3DS
(2011) -
Nintendo Wii
(2006) -
Nintendo WiiU
(2012)
OpenBSD
-
OpenBSD amd64
シンビアン / S40
-
Nokia_Series_40
(1999†) -
S60
(2002†) -
Symbian
: Symbian での Opera -
Symbian OS
手のひら
-
PalmOS
(1996) -
webOS
(2009)
ソラリス
-
SunOS
-
SunOS i86pc
-
SunOS sun4u
: SPARC プロセッサ
ソニー
-
PLAYSTATION 3
(2006) -
PlayStation 4
(2013) -
PSP
: プレイステーション・ポータブル (2004年)
さまざまな
-
HP-UX
: ヒューレットパッカード UniX -
masking-agent
: Masking Agent for Firefox を使用する場合、値はこれに変更されます。 -
WebTV OS
-
X11
: X11 ウィンドウシステム
このリストにないデバイスをお持ちですか。あなたのデバイスのプロパティとその
navigator.platform
の値 (自由に
このJSFiddle
を使って値を探してください)。
これが役に立つといいのですが。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] JavaScriptの「new」キーワードとは何ですか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] モバイル端末の検出にはどのような方法がありますか?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】「GET」パラメータから値を取得する(JavaScript)【重複】。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] デバイスがiOSであるかどうかを検出する
-
[解決済み] JavaScriptまたはjQueryを使用してMac OS XまたはWindowsコンピュータを検出する最良の方法
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] モバイルWeb HTML5フレームワークの選び方【終了しました
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。