- (2015/01/04 Windows 10 Technical Preview の useragent を追記)
- (2013/10/22 jQuery プラグイン でも判定できるようにしました。元記事は こちら 。)
Internet Explorer 11 から UserAgent 文字列が変更になるそうです
(詳細は こちら)。
その結果、今まで MSIE
を使った Internet Explorer の判別が出来なくなります。
これでは困るので、従来の IE も含めて IE であることを判別できる JavaScript を以下で記載します。
IE11 の UserAgent サンプル
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; rv:11.0) like Gecko
Mozilla/5.0 (Windows NT 6.4; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko
全 IE 判定 サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 | var ua, isIE, array, version; // UserAgetn を小文字に正規化 ua = window.navigator.userAgent.toLowerCase(); // IE かどうか判定 isIE = (ua.indexOf( 'msie' ) >= 0 || ua.indexOf( 'trident' ) >= 0); // IE の場合、バージョンを取得 if (isIE) { array = /(msie|rv:?)\s?([\d\.]+)/.exec(userAgent); version = (array) ? array[2] : '' ; } |
IE11 では "Trident
を含んでいるかどうか" で、IE かどうか を判定するようです。
ただし、IE11より古いバージョンでは MSIE
が使えるので、そちらを利用します。
上記 サンプルコード では、 or をとって対応しています。
バージョン文字列は、IE11 だと rv
以降に記述され、
IE11 より古いバージョンでは MSIE
以降に記述されます。
上記 サンプルコード では、正規表現中の or で違いを吸収しています。
おまけ
jQuery プラグイン でも判定できるようにしました。
今回、以下のサイトを参考にしました。
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!