あんたのお名前何ァんてェの (c)トニー谷

navigator.userAgent文字列を見ないでブラウザ判別はどこまでできるか?

IE11が出て、navigator.userAgent(UA)の文字列から"MSIE"が消えたとかで騒ぎになってるけど(…どこで?w)、何もUAを見なくてもJavaScriptの実装状況でここまで判別できるはずだよ、という簡単なサンプル。

ただし、MacもiPhone(iPad)も持っていないので、Safariの判別はCan I use...に依る。 あと、Androidの2とか3とか4.4も持ってないので同様。

つーことで、SafariやAndroidの人柱緩募。 コメント欄やTwitterでお知らせいただけるとありがたく。

スクリプトをちょっと変更、PrestoのOperaを追記 & IE判別を簡素化 /* * distinctUserAgent * JavaScriptの実装からUserAgentを判別 * Copyright (c) 2013 Kazz * http://asamuzak.jp * Dual licensed under MIT or GPL * http://asamuzak.jp/license */ (function(_win,_doc) { var UA = _win.opera ? 'Opera12' : !_doc.documentMode && _win.attachEvent ? 'IE7' : _doc.documentMode ? 'IE' + _doc.documentMode : !_win.matchMedia ? 'Safari4 / AndroidBrowser2' : !_win.ArrayBuffer ? 'AndroidBrowser3' : !_win.requestAnimationFrame && !_win.webkitRequestAnimationFrame ? 'Safari5 / AndroidBrowser4.3' : !_win.requestAnimationFrame ? 'Safari6' : !_win.CSS ? 'Safari7' : !_win.CSS.supports('(animation-timing-function: ease)') ? 'Chrome / Opera / AndroidBrowser4.4' : 'Firefox'; console.log(UA); /* 注:IE7はIE6以下を含む SafariにはiOS Safariを含む。また、Safari5には5.1も含み、6には6.1も含む AndroidBrowser2は~2.3まで AndroidBrowser4.3は4.0~4.3まで Opera12はPresto、Opera(番号なし)はBlinkのOpera Chrome等とFirefoxの判別は暫定的(将来Chromeがanimationのprefixを外したら判別できず) */ })(window,document);

アラートで判定結果が出ます

なお、IEのみのバージョン判定でよければ、こちらのIE判別方法もご参照を

"あんたのお名前何ァんてェの (c)トニー谷"へのTwitter上でのコメントやRT

7件のツイートがあります。

ツイート 1

ツイート 2

ツイート 3

ツイート 4

ツイート 5

ツイート 6

ツイート 7