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


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で制御しています。

テーブルを複数行ごとにhoverでハイライトする方法


今の会社に入って数か月たったころ、前任者が作ったホームページのソースが分かりづらいので、新しく作り直したいという依頼を受けることになった。そのうちのいくつかのページにテーブルがあり、trごとにハイライトしているページが。どうやらJavaScriptでやっているようだったのだけれども、それを自分はCSSに書き換え。例えば以下のような感じで。

HTML

CSS

名前 ふりがな 年齢
中居正広 なかいまさひろ 39
木村拓哉 きむらたくや 39
稲垣吾郎 いながきごろう 38

しかし中には、データ数が多すぎて1セットで複数行になっているテーブルも。ソースを見てみると、どうやらtrタグの中に一つのtdタグを入れ、その中に新たにtableを入れてハイライトをつけているようだった。自分もそのやり方でいいのかと思ったら、これだと線の場所がバラバラことがあるといった問題らしいので、すべてを一つのテーブルで作ることに。いったいどうすりゃいいものか・・・。と少し考えて作ったのが下のようなもの。

HTML

CSS

名前 年齢 生年月日 血液型
ふりがな 出生地 愛称
中居正広 39 1972年8月18日 A型
なかいまさひろ 神奈川県藤沢市 中居くん
木村拓哉 39 1972年11月13日 O型
きむらたくや 東京都 キムタク
稲垣吾郎 38 1973年12月8日 O型
いながきごろう 東京都板橋区 ゴローちゃん

HTMLのテーブルにはヘッダーに該当する<thead>、フッターに該当する<tfoot>、そしてボディに該当する<tbody>の3つで構成されています。また、theadとtfootは同じテーブル内に一つしか記述してはいけないのですが、tbodyはいくつでも記述してもよいことになってるそうです。そのため、複数行をtbodyでまとめ、tbody上にマウスが乗ったらバックの色を変えるという処理をしてみました。なお、上記のタグを書かないと、tbodyと判断されます。そのため、theadタグをつけなかったら、テーブルのヘッダー部分まで色が変わってしまうので注意しましょう。

『ファイル名を指定して実行』で好きなファイルを実行する方法


前のエントリーに引き続き、自分用のメモ。『ファイル名を指定して実行』を使って、自分の使いたいファイルを実行する方法を紹介します。紹介する環境はWindows7です。

実行ファイルを入れるフォルダ
 まず、実行したいファイルのショートカットを入れるフォルダを作成します。今回は、Cドライブ直下に『jikkou』というフォルダを作成しました。ついでに、前回のエントリー、ファイルを右クリックした時の「送る」メニューにテキストエディタ等を追加する方法で、このフォルダを送るメニューに追加しておくと後々便利かもしれません。

システム
 次に、[Windows]キーと[Pause/Break]キーを一緒に押してシステム画面を表示。左の『システムの環境設定』をクリック。

システムの詳細設定
 開いたシステムのプロパティの詳細設定タブを選択し、右下の『環境変数』ボタンをクリック。

PATH追加
 環境変数の変数名に”PATH”、変数値に先ほど作成したフォルダのパス(今回の例では”C:\jikkou”)を入力して追加。追加する場所は、ユーザー環境変数でも、システム環境変数でも、どちらでもOKです。すでに、PATHという変数がある場合には、その変数値の最後に”;”をつけた後に、フォルダのパスを入力します。

送る
 では、フォルダにショートカットファイルを入れていきましょう。上記の画像では、Google Chromeのショートカットファイルを作成し、”Chrome”と名前を変えてから、用意したフォルダに送るということを想定した例です。送った後には、元のショートカットファイルは削除しておきましょう。なお、削除する時にShiftキーを押しながら削除すると、ごみ箱に入らずに、完全に削除します。

実行フォルダ内
 今回は上記の画像のようにいくつかのブラウザソフトとごみ箱のショートカットを入れてみました。FireFixは”ff”という名前で入れています。

ファイル名を指定して実行
 実際にやってみることにします。Windowsキー+Rキーでファイル名を指定して実行を起動。”ff”と入力してエンター。

Firefox
 ちゃんとFirefoxが起動しました(動画じゃないので分からないと思いますが)。試しに、”ごみ箱”と日本語で入力して実行してみると、ちゃんとごみ箱が起動しました。日本語もOKだそうです。なお、”opera”と入力して実行するとちゃんとOperaが起動しました。大文字小文字も関係ないみたいです。
 ただ、本当はここのブログのアドレスの、インターネットショートカットファイルで例を示そうと思ったのですが、インターネットショートカットファイルではうまくいかないようでした。

余談 ―ショートカットキーでプログラムを開くようにする―

Firefox
 余談ですが、自分はいくつかのショートカットファイルにはショートカットキーを設定しています。一応やり方を説明しておくと、ショートカットファイルを右クリックしてプロパティを選択、ショートカットキーの入力欄にカーソルを置き、適当なキーを押します。文字キーを押すと自動的にCtrl+Altがつくと思いますが、Ctrl+Shiftを押しながら文字キーを押すと、Ctrl+Shiftがつくと思います。ファンクションキーだけ押すと何もつかないようです。
 

このようにして、特別なソフトを入れずに簡単に特定のファイルを実行することができます。

ファイルを右クリックした時の「送る」メニューにテキストエディタ等を追加する方法


結構知られてる方法らしいけど、自分用にメモ。なお、紹介する環境はWindows7です。

スタートメニュー
 まず、スタートメニューの”プログラムとファイルの検索”という場所か、Windowsキー+Rキーを押してでてくる”ファイル名を指定して実行”に『shell:sendto』と入力してエンターキーを押す。

フォルダー
 上記の方法以外に、適当なフォルダーのアドレスバーに”sendto”と入力してエンターキーを押すという方法があるということも最近知りました。

SendToフォルダー
 これで、『SendTo』というフォルダが表示されたと思います。見てもらえれば分かると思いますが、ここには『送る』メニューにあるアイコンが入っています。試しに、この中の『デスクトップ (ショートカットを作成)』というアイコン上に何かファイルをドラッグ&ドロップしてみてください。すると、デスクトップ上にドラッグ&ドロップしたファイルのショートカットが表示されていると思います。

SendToフォルダー
 では、適当に送るメニューに追加したいソフトのショートカットをここに追加していきましょう。僕はテキストエディタに『notepad++』というソフトを使っているので、それを追加。ついでに、いらないと思うものは消していきましょう(念のため自分はバックアップをとっておきました)。

送るメニュー
 これで無事、『送る』メニューにプログラムが追加されました。

【PR】僕がレンタルサーバーに『ミニバード』を選んだ経緯


多分、わざわざタイトルに【PR】とつけなくてもいいとは思うのだけども、一応アフィリエイトを通しての紹介になるのでつけておきました。

よし、2012年になったらWordPressでブログを書こう!

2011年に11月ごろ、2012年になったらWordPressでブログを書こう! そしてWebサービスも作ろう! もちろん、独自ドメインもとろう! なんてことを思いました。そもそも今までやってなかったのは、単純に独自ドメインをとってサーバーを借りてやると金がかかるからやってなかったわけです。ただ、2011年にようやく社会人になれた今、ある程度お金にも余裕がでてきたと思っているので、始めようと思いました。

で、まずはレンタルサーバー探しです。VPSにしようかとも思ったのですが、やっぱり高いのでやめました。初めてなので、探すのは格安といわれるレンタルサーバーです。有名どころのさくらインターネットやらロリポップも少しは検討したのですが、いろいろ探しているとかなり安くて容量の多いレンタルサーバーを発見。

初年度は1000円で容量50GBのロケットネット

これは安い! 容量も50GBもあるとかスゲー!!
 ですが、ここでも欠点がいくつかあります。まず、安いのは1年目だけということです。2年目からは月525円になります(年6300円)。ただ、それぐらいなら2年目はある程度アフィリエイトの利益がでているはずなので云々・・・と甘い期待をしていたので、そんなに問題じゃありません。ただ、自分が一番迷ったところは、PHPのバージョンが古くてWordPressの最新版が利用できないということでした。ちょっと古いバージョンでも別にいいけど、やっぱり最新版を使いたい! そう思い、ロケットネットはやめることにしました。

ただ、今確認してみるとなんとPHPのバージョンが5.2.17になってるとのことです。
「PHP5.2系」を搭載した ベータ版レンタルサーバーを提供開始
 これならWordPressの最新版も使えるはずなので、今ならロケットネットにしていたかもしれません。


高機能で安い、ExpressWeb

次に考えたのがWindows Serverで動いているExpressWeb。会社では、Windowsのサーバーを使ってるわけだし、ここだと仕事の勉強にもなっていいかなと思ったのです。値段も月263円と安い。最新版のWordPressも使える。よし、ここにしよう!
 と思ったのですが、一つ勘違いを。会社でのWebプログラミングに使っているのはASPでして、ここでもASPを使えると思っていたのですが、どうやらASP(VBScript)は使えないそうなのです(ASP.NETが使えるので、使えるものかと。全く別のものなんですね)。
ASP(ActiveServerPages)は利用できますか?
 後、”.htaccess”も使えないそうです。.htaccessが使えなくて、WordPressの機能を生かし切れるのか? と疑問に思って結局やめることにしました。
 ただ、そういう点を除けばかなりの優良レンタルサーバーだと思います。自分が、ASP.NETをよく知っていればこっちにしたんじゃないかなと。


バランスがよさそうなミニバード

で、結局ミニバードにしました。月263円、容量30GB、独自ドメインサービスもあって一緒に申し込むと安くなるらしい、Cronがなんか面白そう、RubyやPythonも使える(まだ使ってませんが)。
 もともとこのサイトはExpressWebの評判を調べているときに、知りました。
格安レンタルサーバーの比較なら 格安レンタルサーバー比較.net
 契約して1か月近くたちますが、まったく不満はありません。動作も快適ですし、よくサービスの強化もされます。今後にも期待しています。
 あえて弱みをいうなら、利用者数がそんなに多くないということぐらいです。分からないところをネットで聞こうにも、使ってる人が少ないという。



以上、僕がミニバードを使うことになった経緯です。使っていない機能がまだまだあるのでもっと使っていきたいと思います。