navigatorオブジェクトによるブラウザ識別まとめ

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

JavaScriptには、navigatorオブジェクトという、ブラウザ等の利用環境を識別するオブジェクトがあります。なんとなく気になったので、”appCodeName”と”appName”と”appVersion”と”userAgent”をそれぞれのブラウザで見たときの動作を、バージョンなどバラバラですが、調べれた分だけまとめてみました。なお、appVersionやuserAgentのかっこ内は、利用しているパソコンの環境によっても異なることがあります。

appCodeName
appName
appVersion
userAgent
IE6 Mozilla
Microsoft Internet Explorer
4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
IE7
(IE9の開発者ツール使用時)
Mozilla
Microsoft Internet Explorer
4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E)
IE8 Mozilla
Microsoft Internet Explorer
4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS122159; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BTRS122159; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
IE9 Mozilla
Microsoft Internet Explorer
5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/2; .NET4.0C; .NET4.0E)
Firefox4.0.1 Mozilla
Netscape
5.0 (Windows)
Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Firefox9.0.1 Mozilla
Netscape
5.0 (Windows)
Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
Chrome12.0.742.122 Mozilla
Netscape
5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
Chrome16.0.912.75 Mozilla
Netscape
5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7
Safari5.0.5 Mozilla
Netscape
5.0 (Windows NT 5.1) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
Safari5.1.2 Mozilla
Netscape
5.0 (Windows; U; Windows NT 5.1; ja-JP) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/534.52.7 (KHTML, like Gecko) Version/5.1.2 Safari/534.52.7
Opera11.11 Mozilla
Opera
9.80 (Windows NT 5.1; U; ja)
Opera/9.80 (Windows NT 5.1; U; ja) Presto/2.8.131 Version/11.11
Opera11.60 Mozilla
Opera
9.80 (Windows NT 5.1; U; ja)
Opera/9.80 (Windows NT 6.1; U; ja) Presto/2.10.229 Version/11.60
あなたの環境

appCodeNameはいったいなんなんでしょう。ブラウザのコードネームを示すそうなのですが、全部”Mozilla”って・・・。多分中には、”Mozilla”以外を返すものもあるのでしょう。
 ところで、パッと見userAgentを見たら何のブラウザを使ってるか判別できそうですが、どうもこの値は偽装できてしまうそうです。でも、userAgentを使わなかったら、Firefoxを判別できない・・・。

これで終わるのはなんなので簡単に、navigatorオブジェクトを見てリンク先を変える関数作ってみた。

使用例

クリック!

第三引数に、navigatorオブジェクトの検索結果、第一引数に真だった時のリンク先。第二引数に偽だった時のリンク先。ものすごい、使う人にとって親切じゃない関数! もっと使いやすい関数が書けるようになりたい。後、変数名もうまくつけれるよになりたい・・・

応用例

クリック!

まどろっこしいにもほどがある!!

余談ですが、WordPressが勝手に'(シングルクォテーション)を”(ダブルクォテーション)に変換するので困りました。上記の”クリック!”というリンクはJavaScriptで制御しています。

IE,Firefox,Chrome、三大ブラウザのショートカットキー比較まとめ

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

家のPCでは基本、Chromeのみの利用ですが、会社ではFirefox,Chrome,IEを使い分けています(だいたい業務用にIE、調べごとにFireFoxという感じです)。ただ、使い分けているうちに微妙なショートカットキーの違いで困ったことになることがたまにあります。

というわけで今回は、IEとFireFoxとChromeのブラウザならではのショートカットキーをまとめて比較してみます。試してみた環境は、IE9、Firefox9、Chrome16とすべて現在の最新版です。複数あるものは、二種類まで書いています。

IE Firefox Chrome
全画面表示 F11
ホームページに移動 Alt+Home
次のページに移動 Alt+→
Shift+Backspace
前のページに移動 Alt+←
Backspace
右のタブに移動 Ctrl+Tab
Ctrl+PageDown
左のタブに移動 Ctrl+Shift+Tab
Ctrl+PageUp
ページの先頭に移動する Home
Ctrl+Home
ページの末尾に移動する End
Ctrl+End
Webページの更新 F5
Ctrl+R
スーパーリロード Ctrl+F5
Ctrl+Shift+R Shift+F5
ページのダウンロードを中止 Esc
プライベート(シークレット)モード Ctrl+Shift+P Ctrl+Shift+N
履歴の消去 Ctrl+Shift+Delete
アドレスバーの文字列選択 Alt+D
Ctrl+L
直前に閉じたタブを開く Ctrl+Shift+T
現在のタブを閉じる Ctrl+W
Ctrl+F4
お気に入りを開く Ctrl+I Ctrl+Shift+B
Alt+C Ctrl+B
お気に入りの整理 Ctrl+B Ctrl+Shift+O
履歴を開く Ctrl+H
ダウンロード履歴を開く Ctrl+J
新規ウィンドウ Ctrl+N
新しいタブを開く Ctrl+T
特定のタブを開く Ctrl+数字キー(1~8)
(アドレスバー選択時)新しいタブでウェブアドレスを開く Alt+Enter
タブ複製 Ctrl+K
Alt+D+Enter
一番右のタブに切り替える Ctrl+9
拡大する Ctrl+正符号(+)キー
縮小する Ctrl+負符号(-)キー
元の大きさにする Ctrl+0
検索窓にフォーカス Ctrl+E
Ctrl+K
お気に入りに追加 Ctrl+D
開発者ツールを開く F12(FireFoxはFirebugを入れてる場合)
Ctrl+Shift+I
ページのコード表示 Ctrl+U
カーソルブラウズ F7

特に自分がよく間違うのは、検索窓フォーカス。Firefoxを使い始めたころに、「Ctrl+Kで検索にフォーカス」なんてことを聞いたものだからずっとCtrl+Kでやっていたのですが、IEでCtrl+Kをやるとタブが複製してしまいます(この機能はこの機能でよく使ってますが)。検索フォーカスは、Ctrl+Eのほうが全共通でいいかもしれません。

ところで、タブ複製のAlt+D+Enterのやり方は公式ではありません。アドレスバーの文字列選択のAlt+Dと、新しいタブで開くAlt+Enterを組み合わせたものです。なので、正確にはAlt+D→Alt+Enterなのですが、これでも通用するそうなので書きました。元々、「ライフハッカー」というサイトで知ったやり方です。
Chromeユーザ向け、ショートカットキーでタブ複製する超カンタンな方法

また、ページの一番上、一番下のショートカットキーにCtrlキーをプラスしたものものっけているのは、自分がCtrl+Home、Ctrl+Endでやることが多いためです。テキストエディタだと、Ctrlキーを付けないと、ページの上や下に行ったりしないので。

間違いや、他にもやり方があるという場合はお教えください。