JavaScriptで64bit版か32bit版の判別をする方法
JavaScriptでOSが64bit版か32bit版かを判別する場合、利用できる情報はnavigator.userAgentまたはnavigator.platformとなります。
64bit版OSでもアプリケーションが32bitで実行されていると、64bit版か32bit版かの判別は難しくなります。
64bit版OS上でWin32アプリケーションを実行するためにWOW64(Windows 32-bit On Windows 64-bit)を使用していると、ユーザーエージェントにWOW64と表示されてるブラウザもあります。
[参考記事] 64bit版か32bit版のどちらかを調べる方法
[参考記事] 64bit版Windowsで32bit用のProgram Filesフォルダのパスを取得する方法
Internet Explorer 8 (32ビット版)
navigator.userAgent
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.1)
navigator.platform
Win32
Internet Explorer 8 (64ビット版)
navigator.userAgent
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
navigator.platform
Win64
Google Chrome15.0.874.121
navigator.userAgent
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2
navigator.platform
Win32
Google Chrome4.0.249.89
navigator.userAgent
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5
navigator.platform
Win32
Firefox3.6.24 (32ビット版)
navigator.userAgent
Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.24) Gecko/20111103 Firefox/3.6.24
navigator.platform
Win32
Firefox3.7 alpha 1 (64ビット版)
navigator.userAgent
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.3a1pre) Gecko/20100121 Minefield/3.7a1pre
navigator.platform
Win64
Opera11.51
navigator.userAgent
Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.9.168 Version/11.51
navigator.platform
Win32
Safari5.1.2
navigator.userAgent
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
navigator.platform
Win32
『64bit版』と『32bit版か64bit版』という区別はできます。
navigator.userAgentに『Win64』または『WOW64』という文字が含まれているか、navigator.platformが『Win64』のときは64bit版といえます。
32bit版OSでは整数値の最大4,294,967,296までとなりますが、JavascriptのNumber型は、倍精度64bitフォーマット IEEE 754型(double-precision 64-bit format IEEE 754 values)で、32bitの桁数を超える整数値を扱うことができます。
このため4,294,967,296を超える整数を正しく扱えるかどうかで判別することも難しいです。
初期状態では
64ビット版WindowsXPではInternet Explorer6の32ビット版と64ビット版、
64ビット版WindowsVistaではInternet Explorer7の32ビット版と64ビット版、
64ビット版Windows7ではInternet Explorer8の32ビット版と64ビット版がそれぞれインストールされています。
これらを加味すると次のようになります。
Internet Explorer | 判別できる |
Google Chrome | 最新版なら判別できる |
Firefox(32ビット版) | 判別できない |
Firefox(64ビット版) | 判別できる |
Opera | 判別できない |
Safari | 最新版なら判別できる |
<p id="area_os_name"></p> <script language="JavaScript" type="text/javascript"> <!-- var os_name = ""; var bit_name = ""; var ua = navigator.userAgent; if (ua.match(/Win(dows )?NT 6\.1/)) { os_name = "Windows 7"; }else if (ua.match(/Win(dows )?NT 6\.0/)) { os_name = "Windows Vista"; }else if (ua.match(/Win(dows )?NT 5\.2/)) { os_name = "Windows Server 2003"; }else if (ua.match(/Win(dows )?(NT 5\.1|XP)/)) { os_name = "Windows XP"; }else if (ua.match(/Win(dows)? (9x 4\.90|ME)/)) { os_name = "Windows ME"; }else if (ua.match(/Win(dows )?(NT 5\.0|2000)/)) { os_name = "Windows 2000"; }else if (ua.match(/Win(dows )?98/)) { os_name = "Windows 98"; }else if (ua.match(/Win(dows )?NT( 4\.0)?/)) { os_name = "Windows NT"; }else if (ua.match(/Win(dows )?95/)) { os_name = "Windows 95"; }else if (ua.match(/Win/) || navigator.platform.indexOf("Win") != -1) { os_name = "Windows"; }else{ os_name = "Windows以外"; } if (navigator.platform=="Win64" || ua.indexOf("Win64") != -1 || ua.indexOf("WOW64") != -1) { bit_name = "64bit版"; }else if(ua.indexOf("MSIE") != -1){ bit_name = "32bit版"; } var osversion_txt = ''; if(os_name != ""){ osversion_txt= '閲覧中のPCは<span style="font-weight:bold;color:#FF0000;">' + bit_name + os_name + '</span>です。'; } if(bit_name == ""){ osversion_txt = osversion_txt + '<br />Internet Explorerで見ると、OSが自動で判別されます。'; } document.getElementById("area_os_name").innerHTML = osversion_txt; document.getElementById("area_os_name").style.display = ""; --> </script>
関連記事
- 経過時間、残り時間をリアルタイムに表示する方法
- 時間をHH:ii:ssのフォーマットで表示する方法
- ゼロ埋めする方法 printfの代替
- ページのタイトルを変更する titleタグ
- リンクを別ウインドウで開きながら、元のウインドウのページを遷移させる方法
- 複数のチェックボックスを同時にチェックする 全選択チェックボックス
- Aタグのtarget属性をJavaScriptで指定する方法
- ページを移動するときに警告を出す方法
- IE6でmin-width、max-width、min-height、max-heightを使用する方法
- 入力フォームでコピペ(コピー&ペースト)を禁止する方法
- 表示、非表示を切り替える方法
- JavaScript
- Lightboxの使い方
- フレームに関するJavascript
- Windowsを定時にシャットダウンするツール
- HTMLとJavaScriptの文字コードが違うときの対処法
- 全てのブラウザ向けにJavaScriptでブックマークリンクを設定する方法
- innerText、innerHTML、textContentの違い
- jQueryのbgiframeプラグインをIE9に対応させる方法
- replaceは最初に一致した文字列だけを置き換えることに気をつける
- JavaScriptとは?
- イベントハンドラの種類
- SELECTタグで色を選択する場合のサンプル
- FireFoxでinnerHTMLを使うときの注意点
スポンサーリンク