2017-11-18 更新 : edge を追加 ※ 前回投稿日 : 2014-10-02 ▼ 運営中サイトのブラウザ比率 IE11 の登場で少し変わりました(IE11 を一意に識別することが必要な場合があります。 その場合は、Trident トークンを使ってください) IEのシェアは大きいですが、実際問題として IE6、IE7、IE8、IE9、IE10 が存在します。IE 以外では Firefox と Google Chrome を少なくとも視野にいれる必要があります。( あと、Safari もあります ) そういえば、『Operaが独自路線を転換、ブラウザエンジンをWebKitに切り替え』 なんで、気苦労が少し減りますが、相変わらず IE は増える一方で・・・・ちにみに、jQuery 1.9 では、$.browser は削除されています
<script> function browser_name() { var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); if (userAgent.indexOf("msie") > -1) { if (appVersion.indexOf("msie 6.0") > -1) { alert("IE6"); } else if (appVersion.indexOf("msie 7.0") > -1) { alert("IE7"); } else if (appVersion.indexOf("msie 8.0") > -1) { alert("IE8"); } else if (appVersion.indexOf("msie 9.0") > -1) { alert("IE9"); } else if (appVersion.indexOf("msie 10.0") > -1) { alert("IE10"); } else { alert("Unknown"); } } else if (userAgent.indexOf("trident/7.0") > -1) { alert("IE11"); } else if (userAgent.indexOf("edge") > -1) { alert("Edge"); } else if (userAgent.indexOf("firefox") > -1) { alert("Firefox"); } else if (userAgent.indexOf("opera") > -1) { alert("Opera"); } else if (userAgent.indexOf("chrome") > -1) { alert("Google Chrome"); } else if (userAgent.indexOf("safari") > -1) { alert("Safari"); } else { alert("Unknown"); } } </script> <input type="button" value="表示" onclick="browser_name();">
関連する記事
prototype.js の Browser メソッドを転用して jQueryの名前空間へ投入。IE バージョンも含めてブラウザ(仕様)判定 String オブジェクトにメソッドとして実装 IE と それ以外の判定方法として "ie".browser() で判定できます。 ▼ 実際の実行
<script type="text/javascript"> String.prototype.browser = function() { var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); var target = this.valueOf(); if (userAgent.indexOf("msie") > -1) { if (appVersion.indexOf("msie 6.0") > -1) { return ( target == "ie6" || target == "ie" ); } else if (appVersion.indexOf("msie 7.0") > -1) { return ( target == "ie7" || target == "ie" ); } else if (appVersion.indexOf("msie 8.0") > -1) { return ( target == "ie8" || target == "ie" ); } else if (appVersion.indexOf("msie 9.0") > -1) { return ( target == "ie9" || target == "ie" ); } else if (appVersion.indexOf("msie 10.0") > -1) { return ( target == "ie10" || target == "ie" ); } else { return false; } } else if (userAgent.indexOf("trident/7.0") > -1) { return ( target == "ie11" || target == "ie" ); } else if (userAgent.indexOf("edge") > -1) { return ( target == "edge" ); } else if (userAgent.indexOf("firefox") > -1) { return ( target == "firefox" ); } else if (userAgent.indexOf("opera") > -1) { return ( target == "opera" ); } else if (userAgent.indexOf("chrome") > -1) { return ( target == "chrome" ); } else if (userAgent.indexOf("safari") > -1) { return ( target == "safari" ); } else { return false; } } </script> <select id="browser"> <option value="chrome">chrome</oprion> <option value="firefox">firefox</oprion> <option value="opera">opera</oprion> <option value="safari">safari</oprion> <option value="edge">edge</oprion> <option value="ie11">ie11</oprion> <option value="ie10">ie10</oprion> <option value="ie9">ie9</oprion> <option value="ie8">ie8</oprion> <option value="ie7">ie7</oprion> <option value="ie6">ie6</oprion> <option value="ie">ie</oprion> </select> <input type=button value="ブラウザ判定" onclick='alert((document.getElementById("browser").value).browser())'>
jQuery の名前空間に登録
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script> $.extend({ browser_name: (function(){ var userAgent = window.navigator.userAgent.toLowerCase(); var appVersion = window.navigator.appVersion.toLowerCase(); var browser_string = "unknown" if (userAgent.indexOf("msie") > -1) { if (appVersion.indexOf("msie 6.0") > -1) { browser_string = "IE6"; } else if (appVersion.indexOf("msie 7.0") > -1) { browser_string = "IE7"; } else if (appVersion.indexOf("msie 8.0") > -1) { browser_string = "IE8"; } else if (appVersion.indexOf("msie 9.0") > -1) { browser_string = "IE9"; } else if (appVersion.indexOf("msie 10.0") > -1) { browser_string = "IE10"; } } else if (appVersion.indexOf("trident/7.0") > -1) { browser_string = "IE11"; } else if (userAgent.indexOf("edge") > -1) { browser_string = "Edge"; } else if (userAgent.indexOf("firefox") > -1) { browser_string = "Firefox"; } else if (userAgent.indexOf("opera") > -1) { browser_string = "Opera"; } else if (userAgent.indexOf("chrome") > -1) { browser_string = "Chrome"; } else if (userAgent.indexOf("safari") > -1) { browser_string = "Safari"; } return browser_string; })() }); console.log($.browser_name); </script>
▼ オリジナルコード http://winofsql.jp/VA003334/infoboard.php?id=070828100942&mid=sjscript&pid=3 IE と それ以外だけの判定
<script type="text/javascript"> var ie = window.navigator.appName.toLowerCase().indexOf("microsoft") > -1; ie |= window.navigator.userAgent.toLowerCase().indexOf("trident/7.0") > -1; if (ie) { // IE 用 console.log("IE"); } else { // IE 以外用 console.log("IE以外"); } </script>
|
【JavaScriptの最新記事】
- Replit : js-web-speech
- JavaScript の論理和(||) による『無かった場合の値の代入』/ expr1 || expr2 は expr1 を false と見ることができる場合は expr2 を返します
- Seesaa の記事に下の『最新の同カテゴリのリスト』のリンクの最後に付く ?seesaa_related=category を削除する方法
- JavaScript : 入力文字列を 変数用16進数表現 に変換する
- JavaScript : 入力文字列を htmlentity に変換する
- HTML5 で行われる入力チェックを :invalid :valid 疑似クラスと JavaScript を使用してリアルタイムにエラーを視認させる
- HTML5 で行われる入力チェックのエラーメッセージをカスタマイズする JavaScript の記述( この手のコントロールはとてもデリケートです。いろいろなパターン検証が必要です )
- テーブルのセルをクリックして背景色を rgb(0,0,0) から #000000 の変換で、eval を使う事の考察
- JavaScript & VBScript : ブラウザから Windows の OS のバージョンを判定
- Firefox、IE11 の canvas で動作する楕円( ellipse )関数
- 文字列を UTF-8(2バイト以上) で表現した時の 16進数表現の文字列を取得する
- ブログで jQuery を使用するのに、全ての記事で使うわけでは無いので、記事毎でロードする
- JavaScript による2会話アプリケーションのコントロール(2)
- JavaScript による2会話アプリケーションのコントロール(1)
- JavaScript : Global な undefined 変数に絡むいろいろ
- 簡易縦書き変換
- ブラウザの WebGL チェック : jQuery 名前空間へ変数($.is_webgl)追加
- JSONP の原理と、簡単な利用方法の実際のコード( 実装は jQuery が良いですが、Access-Control-Allow-Origin: * のほうが楽だし読込み先を制限できます )
- document.createElement("a") で新しいウインドウ(タブ)を開く
- JavaScript と VBScript のカラーコード(#RRGGBB)の文字列と数値間の相互変換