V9より前のバージョンのInternet Explorer
を使用している場合、私たちのWebサイトのユーザーをエラーページにバウンスしたいです。 IE pre-v9
をサポートするのは私達の時間とお金の価値がないだけです。他のすべての非IEブラウザを使用しているユーザーは問題ありません。これが提案されたコードです:
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
このコードはうまくいくでしょうか。
私のやり方で来ると思われるいくつかのコメントを締めくくるには:
useragent
文字列を偽造できることを知っています。私は心配していません。pre-v9 IE
ブラウザがサポートしていないことをすでに知っています。サイト全体で機能ごとに機能を確認するのは無駄です。IE v1
(または> = 20)を使用してサイトにアクセスしようとしている人が 'badBrowser'をtrueに設定せず、警告ページが正しく表示されないことがあります。それは私たちが喜んで取るリスクです。IE 10
の時点で条件付きコメントをサポートしなくなり、このアプローチはまったく役に立ちません。注意すべき他の明らかな問題はありますか?
これは私が好むやり方です。それは最大限の制御を与えます。 (注:条件付きステートメントはIE5 - 9でのみサポートされています。)
最初にあなたのieクラスを正しく設定してください
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html> <!--<![endif]-->
<head>
それから、単にCSSを使ってスタイルの例外を作ることができます。あるいは、必要ならば、単純なJavaScriptを追加することもできます。
(function ($) {
"use strict";
// Detecting IE
var oldIE;
if ($('html').is('.lt-ie7, .lt-ie8, .lt-ie9')) {
oldIE = true;
}
if (oldIE) {
// Here's your JS for IE..
} else {
// ..And here's the full-fat code for everyone else
}
}(jQuery));
Paul Irish に感謝します。
IE versionを返すか、そうでない場合はIEを返し、falseを返します。
function isIE () {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}
例:
if (isIE () == 8) {
// IE8 code
} else {
// Other versions IE or not IE
}
または
if (isIE () && isIE () < 9) {
// is IE version less than 9
} else {
// is IE 9 and later or not IE
}
または
if (isIE()) {
// is IE
} else {
// Other browser
}
他に誰もaddEventLister
-メソッドを追加しておらず、正しいブラウザモードを使用しているのであれば、IE 8以下をチェックすることができます。
if (window.attachEvent && !window.addEventListener) {
// "bad" IE
}
条件付きコメントを使用してください。 IE <9のユーザーを検出しようとしていますが、これらのブラウザーでは条件付きコメントが機能します。他のブラウザ(IE> = 10およびIE以外)では、コメントは通常のHTMLコメントとして扱われます。
HTMLの例:
<!--[if lt IE 9]>
WE DON'T LIKE YOUR BROWSER
<![endif]-->
必要ならば、純粋にスクリプトでこれを行うこともできます。
var div = document.createElement("div");
div.innerHTML = "<!--[if lt IE 9]><i></i><![endif]-->";
var isIeLessThan9 = (div.getElementsByTagName("i").length == 1);
if (isIeLessThan9) {
alert("WE DON'T LIKE YOUR BROWSER");
}
MSIE(v6 - v7 - v8 - v9 - v10 - v11)を簡単に検出するには
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
// MSIE
}
これがAngularJS checks IEのやり方です
/**
* documentMode is an IE-only property
* http://msdn.Microsoft.com/en-us/library/ie/cc196988(v=vs.85).aspx
*/
var msie = document.documentMode;
if (msie < 9) {
// code for IE < 9
}
IE8以前を確実にフィルタリングするには、 グローバルオブジェクトをチェックする を使用できます。
if (document.all && !document.addEventListener) {
alert('IE8 or lower');
}
この関数はIEメジャーバージョン番号を整数で返します。ブラウザがInternet Explorerではない場合はundefined
です。これは、すべてのユーザエージェントソリューションと同様に、ユーザエージェントのなりすましの影響を受けやすい(これはバージョン8以降のIEの公式機能です)。
function getIEVersion() {
var match = navigator.userAgent.match(/(?:MSIE |Trident\/.*; rv:)(\d+)/);
return match ? parseInt(match[1]) : undefined;
}
機能検出を使用してIEバージョンを検出する(IE6 +、IE6より前のブラウザは6として検出され、IE以外のブラウザではnullが返される)
var ie = (function (){
if (window.ActiveXObject === undefined) return null; //Not IE
if (!window.XMLHttpRequest) return 6;
if (!document.querySelector) return 7;
if (!document.addEventListener) return 8;
if (!window.atob) return 9;
if (!document.__proto__) return 10;
return 11;
})();
編集:私はあなたの便宜のためにbower/npmリポジトリを作成しました: ie-version
更新:
よりコンパクトなバージョンは、一行で次のように書くことができます。
return window.ActiveXObject === undefined ? null : !window.XMLHttpRequest ? 6 : !document.querySelector ? 7 : !document.addEventListener ? 8 : !window.atob ? 9 : !document.__proto__ ? 10 : 11;
// ----------------------------------------------------------
// A short snippet for detecting versions of IE in JavaScript
// without resorting to user-agent sniffing
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
// ie === undefined
// If you're in IE (>=5) then you can determine which version:
// ie === 7; // IE7
// Thus, to detect IE:
// if (ie) {}
// And to detect the version:
// ie === 6 // IE6
// ie > 7 // IE8, IE9 ...
// ie < 9 // Anything less than IE9
// ----------------------------------------------------------
// UPDATE: Now using Live NodeList idea from @jdalton
var ie = (function(){
var undef,
v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
return v > 4 ? v : undef;
}());
これは私のために働きます。私はなぜIE9が好きではないのかを説明するページへのリダイレクトとして使い、私たちが好むブラウザへのリンクを提供します。
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;URL=http://google.com">
<![endif]-->
あなたのコードはチェックをすることができますが、あなたが思ったようにIE v1または> v19を使ってあなたのページにアクセスしようとする人はエラーを得ないでしょう。以下のコード:
var userAgent = navigator.userAgent.toLowerCase();
// Test if the browser is IE and check the version number is lower than 9
if (/msie/.test(userAgent) &&
parseFloat((userAgent.match(/.*(?:rv|ie)[\/: ](.+?)([ \);]|$)/) || [])[1]) < 9) {
// Navigate to error page
}
Microsoftのリファレンスページ に記載されているように、条件付きコメントはバージョン10以降のIEではサポートされなくなりました。
var ieDetector = function() {
var browser = { // browser object
verIE: null,
docModeIE: null,
verIEtrue: null,
verIE_ua: null
},
tmp;
tmp = document.documentMode;
try {
document.documentMode = "";
} catch (e) {};
browser.isIE = typeof document.documentMode == "number" || eval("/*@cc_on!@*/!1");
try {
document.documentMode = tmp;
} catch (e) {};
// We only let IE run this code.
if (browser.isIE) {
browser.verIE_ua =
(/^(?:.*?[^a-zA-Z])??(?:MSIE|rv\s*\:)\s*(\d+\.?\d*)/i).test(navigator.userAgent || "") ?
parseFloat(RegExp.$1, 10) : null;
var e, verTrueFloat, x,
obj = document.createElement("div"),
CLASSID = [
"{45EA75A0-A269-11D1-B5BF-0000F8051515}", // Internet Explorer Help
"{3AF36230-A269-11D1-B5BF-0000F8051515}", // Offline Browsing Pack
"{89820200-ECBD-11CF-8B85-00AA005B4383}"
];
try {
obj.style.behavior = "url(#default#clientcaps)"
} catch (e) {};
for (x = 0; x < CLASSID.length; x++) {
try {
browser.verIEtrue = obj.getComponentVersion(CLASSID[x], "componentid").replace(/,/g, ".");
} catch (e) {};
if (browser.verIEtrue) break;
};
verTrueFloat = parseFloat(browser.verIEtrue || "0", 10);
browser.docModeIE = document.documentMode ||
((/back/i).test(document.compatMode || "") ? 5 : verTrueFloat) ||
browser.verIE_ua;
browser.verIE = verTrueFloat || browser.docModeIE;
};
return {
isIE: browser.isIE,
Version: browser.verIE
};
}();
document.write('isIE: ' + ieDetector.isIE + "<br />");
document.write('IE Version Number: ' + ieDetector.Version);
それから:
if((ieDetector.isIE) && (ieDetector.Version <= 9))
{
}
すなわち10と11の場合:
条件付きコメント の標準を維持するために、jsを使用してhtmlにクラスを追加できます。
var ua = navigator.userAgent,
doc = document.documentElement;
if ((ua.match(/MSIE 10.0/i))) {
doc.className = doc.className + " ie10";
} else if((ua.match(/rv:11.0/i))){
doc.className = doc.className + " ie11";
}
またはクッパのようなライブラリを使用します。
または特徴検出のためのmodernizr:
Internet Explorer 10 | 11を検出するには、bodyタグの直後にこの小さなスクリプトを使用します。
私の場合は頭に読み込まれたjQueryライブラリを使用します。
<!DOCTYPE HTML>
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
</head>
<body>
<script>if (navigator.appVersion.indexOf('Trident/') != -1) $("body").addClass("ie10");</script>
</body>
</html>
これは死に答えられました、しかし、これはあなたが必要とするすべてです。
!!navigator.userAgent.match(/msie\s[5-8]/i)
var Browser = new function () {
var self = this;
var nav = navigator.userAgent.toLowerCase();
if (nav.indexOf('msie') != -1) {
self.ie = {
version: toFloat(nav.split('msie')[1])
};
};
};
if(Browser.ie && Browser.ie.version > 9)
{
// do something
}
Microsoft によると、以下が最善の解決策であり、それも非常に簡単です。
function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
function checkVersion()
{
var msg = "You're not using Internet Explorer.";
var ver = getInternetExplorerVersion();
if ( ver > -1 )
{
if ( ver >= 8.0 )
msg = "You're using a recent copy of Internet Explorer."
else
msg = "You should upgrade your copy of Internet Explorer.";
}
alert( msg );
}
私はそれが好きです:
<script>
function isIE () {
var myNav = navigator.userAgent.toLowerCase();
return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false;
}
var ua = window.navigator.userAgent;
//Internet Explorer | if | 9-11
if (isIE () == 9) {
alert("Shut down this junk! | IE 9");
} else if (isIE () == 10){
alert("Shut down this junk! | IE 10");
} else if (ua.indexOf("Trident/7.0") > 0) {
alert("Shut down this junk! | IE 11");
}else{
alert("Thank god it's not IE!");
}
</script>
IEを検出するこのアプローチは、条件付きコメントを使用したjKeyの回答とユーザーエージェントを使用したOwenの回答の長所と短所を組み合わせたものです。
OwenのアプローチはIE 5&6(7を報告)で失敗する可能性があり、UAのなりすましの影響を受けやすくなりますが、IE versions> = 10を検出できます(Owenの日付が12になりました)。回答)。
// ----------------------------------------------------------
// A short snippet for detecting versions of IE
// ----------------------------------------------------------
// If you're not in IE (or IE version is less than 5) then:
// ie === undefined
// Thus, to detect IE:
// if (ie) {}
// And to detect the version:
// ie === 6 // IE6
// ie > 7 // IE8, IE9 ...
// ----------------------------------------------------------
var ie = (function(){
var v = 3,
div = document.createElement('div'),
all = div.getElementsByTagName('i');
while (
div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
all[0]
);
if (v <= 4) { // Check for IE>9 using user agent
var match = navigator.userAgent.match(/(?:MSIE |Trident\/.*; rv:|Edge\/)(\d+)/);
v = match ? parseInt(match[1]) : undefined;
}
return v;
}());
これを使用して、IE versionを含む文書に有用なクラスを設定できます。
if (ie) {
document.documentElement.className += ' ie' + ie;
if (ie < 9)
document.documentElement.className += ' ieLT9';
}
IEが互換モードの場合、使用されている互換モードを検出します。また、IE versionは、古いバージョン(<10)に最も便利です。より高いバージョンはより標準に準拠しているので、代わりにmodernizr.jsのようなものを使用して機能をチェックするほうがよいでしょう。
あるいは単に
// IE 10: ua = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)';
// IE 11: ua = 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko';
// Edge 12: ua = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0';
// Edge 13: ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586';
var isIE = navigator.userAgent.match(/MSIE|Trident|Edge/)
var IEVersion = ((navigator.userAgent.match(/(?:MSIE |Trident.*rv:|Edge\/)(\d+(\.\d+)?)/)) || []) [1]
私はこれのために便利なアンダースコアミックスインを作りました。
_.isIE(); // Any version of IE?
_.isIE(9); // IE 9?
_.isIE([7,8,9]); // IE 7, 8 or 9?
_.mixin({
isIE: function(mixed) {
if (_.isUndefined(mixed)) {
mixed = [7, 8, 9, 10, 11];
} else if (_.isNumber(mixed)) {
mixed = [mixed];
}
for (var j = 0; j < mixed.length; j++) {
var re;
switch (mixed[j]) {
case 11:
re = /Trident.*rv\:11\./g;
break;
case 10:
re = /MSIE\s10\./g;
break;
case 9:
re = /MSIE\s9\./g;
break;
case 8:
re = /MSIE\s8\./g;
break;
case 7:
re = /MSIE\s7\./g;
break;
}
if (!!window.navigator.userAgent.match(re)) {
return true;
}
}
return false;
}
});
console.log(_.isIE());
console.log(_.isIE([7, 8, 9]));
console.log(_.isIE(11));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
私はこのコードを何度も書き直さないことをお勧めします。私はあなたが特定のIEのバージョンだけでなく他のブラウザ、オペレーティングシステム、さらにはプレゼンスさえテストすることができるConditionizrライブラリ( http://conditionizr.com/ /)を使うことを勧めます。網膜ディスプレイの有無。
あなたが必要とする特定のテストだけのためのコードを含めてください、そしてまたあなたはテストされたライブラリの恩恵を受けています(そしてそれはあなたのコードを壊さずにアップグレードするのは簡単でしょう)。
また、特定のブラウザではなく特定の機能をテストしたほうがよいような、すべてのケースを処理できるModernizrとうまく連携できます。
以下のcodepenはすべての場合でIE versionを識別します(IE <= 9、IE10、IE11およびIE/Edge)。
function detectIE() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf('MSIE ');
if (msie > 0) {
// IE 10 or older => return version number
return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
}
var trident = ua.indexOf('Trident/');
if (trident > 0) {
// IE 11 => return version number
var rv = ua.indexOf('rv:');
return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
}
var Edge = ua.indexOf('Edge/');
if (Edge > 0) {
// Edge (IE 12+) => return version number
return parseInt(ua.substring(Edge + 5, ua.indexOf('.', Edge)), 10);
}
// other browser
return false;
}
それは私を助けました
function IsIE8Browser() {
var rv = -1;
var ua = navigator.userAgent;
var re = new RegExp("Trident\/([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
}
return (rv == 4);
}
// Detect ie <= 10
var ie = /MSIE ([0-9]+)/g.exec(window.navigator.userAgent)[1] || undefined;
console.log(ie);
// Return version ie or undefined if not ie or ie > 10
IEとそのバージョンを検出するのはそれほど簡単ではありません。あなたが必要とするのは、少しネイティブな/ Vanilla Javascriptです。
var uA = navigator.userAgent;
var browser = null;
var ieVersion = null;
if (uA.indexOf('MSIE 6') >= 0) {
browser = 'IE';
ieVersion = 6;
}
if (uA.indexOf('MSIE 7') >= 0) {
browser = 'IE';
ieVersion = 7;
}
if (document.documentMode) { // as of IE8
browser = 'IE';
ieVersion = document.documentMode;
}
そしてこれはそれを使用する方法です:
if (browser == 'IE' && ieVersion <= 9)
document.documentElement.className += ' ie9-';
。
下位互換表示/モードの上位バージョンを含むすべてのIEバージョンで動作し、documentMode
はIE専用です。
if (!document.addEventListener) {
// ie8
} else if (!window.btoa) {
// ie9
}
// others
私はここでパーティーに少し遅れていることを認識しています、しかし私はブラウザがIEであるかどうか、そしてそれが10からそれ以降であるバージョンに関してフィードバックを提供する簡単な一行の方法をチェックしていました。私はこれをバージョン11用にコーディングしていないので、そのためにはおそらく少しの修正が必要になるでしょう。
これはコードですが、ナビゲータオブジェクトを擦り取るのではなく、プロパティとメソッドを持ち、オブジェクトの検出に依存するオブジェクトとして機能します(偽装される可能性があるため、非常に欠陥があります)。
var isIE = { browser:/*@cc_on!@*/false, detectedVersion: function () { return (typeof window.atob !== "undefined") ? 10 : (typeof document.addEventListener !== "undefined") ? 9 : (typeof document.querySelector !== "undefined") ? 8 : (typeof window.XMLHttpRequest !== "undefined") ? 7 : (typeof document.compatMode !== "undefined") ? 6 : 5; } };
使い方はisIE.browser
ブール値を返し、条件付きコメントに依存する5から10までの数値を返すメソッドisIE.detectedVersion()
です。 1ライナーよりも肉厚で、10を超えるものであれば、より新しい領域に入ります。私は条件付きコメントをサポートしていないIE11について何か読んだことがありますが、私は十分に調査していません、それは多分後日のためかもしれません。
とにかく、それがそのままで、そして1ライナーのために、それはIEブラウザとバージョン検出の基本をカバーするでしょう。それは完全には程遠いですが、それは小さくて簡単に修正されます。
参考までに、実際にこれを実装する方法について誰かが疑問を抱いている場合は、次の条件が役立つはずです。
var isIE = { browser:/*@cc_on!@*/false, detectedVersion: function () { return (typeof window.atob !== "undefined") ? 10 : (typeof document.addEventListener !== "undefined") ? 9 : (typeof document.querySelector !== "undefined") ? 8 : (typeof window.XMLHttpRequest !== "undefined") ? 7 : (typeof document.compatMode !== "undefined") ? 6 : 5; } };
/* testing IE */
if (isIE.browser) {
alert("This is an IE browser, with a detected version of : " + isIE.detectedVersion());
}
IEのバージョンを確認するために私が見つけた最も包括的なJSスクリプトは http://www.pinlady.net/PluginDetect/IE/ です。ライブラリ全体は http://www.pinlady.net/PluginDetect/Browsers/ にあります。
IE10では、条件文はサポートされなくなりました。
IE11では、ユーザーエージェントはMSIEを含まなくなりました。また、ユーザーエージェントを使用することはそれが修正されることができるので信頼できません。
PluginDetect JSスクリプトを使用すると、IEを検出し、特定のIEバージョンを対象とした非常に具体的で綿密なコードを使用して正確なバージョンを検出できます。あなたが使用しているブラウザのバージョンを正確に気にする場合、これは非常に役に立ちます。
function getIEVersion(){
if (/MSIE |Trident\//.test( navigator.userAgent )=== false) return -1;
/**[IE <=9]*/
var isIE9L = typeof ( window.attachEvent ) === 'function' && !( Object.prototype.toString.call( window.opera ) == '[object Opera]' ) ? true : false;
var re;
if(isIE9L){
re = new RegExp( "MSIE ([0-9]{1,}[\.0-9]{0,})" );
if(re.exec( navigator.userAgent ) !== null)
return parseFloat( RegExp.$1 );
return -1;
}
/**[/IE <=9]*/
/** [IE >= 10]*/
if(navigator.userAgent.indexOf( 'Trident/' ) > -1){
re = new RegExp( "rv:([0-9]{1,}[\.0-9]{0,})" );
if(re.exec( navigator.userAgent ) !== null)
return parseFloat( RegExp.$1 );
return -1;
}
/**[/IE >= 10]*/
return -1;
};
ここをチェック==>
var ieVersion = getIEVersion();
if(ieVersion < 0){
//Not IE
}
//A version of IE
ブラウザナビゲータの詳細 https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator
var isIE9OrBelow = function()
{
return /MSIE\s/.test(navigator.userAgent) && parseFloat(navigator.appVersion.split("MSIE")[1]) < 10;
}
そのような単純なことを過度に複雑にしないでください。単純で単純なJScriptの条件付きコメントを使用するだけです。検出のためにIE以外のブラウザにゼロコードを追加し、HTML条件付きコメントがサポートされる前のIEのバージョンと互換性があるため、最も高速です。要するに、
var IE_version=(-1/*@cc_on,@_jscript_version@*/);
小型化に注意してください:ほとんど(全部ではないにしても)は特別な条件付きコメントを通常のコメントと間違えて、それを削除します
基本的に、上記のコードはIE_versionの値を、使用しているIEのバージョン、またはIEを使用していない場合は-1に設定します。ライブデモンストレーション:
var IE_version=(-1/*@cc_on,@_jscript_version@*/);
if (IE_version!==-1){
document.write("<h1>You are using Internet Explorer " + IE_version + "</h1>");
} else {
document.write("<h1>You are not using a version of Internet Explorer less than 11</h1>");
}
これは、条件付きコメントが古いバージョンのInternet Explorerでしか表示されず、IEが@_jscript_version
をブラウザのバージョンに設定するという事実に基づいて機能します。たとえば、Internet Explorer 7を使用している場合、@_jscript_version
は7
に設定されます。したがって、実行される後処理されたJavaScriptは実際には次のようになります。
var IE_version=(-1,7);
これは7に評価されます。
ウィンドウランIE10はIE11 +に自動更新され、標準化されたW3Cになります
今日では、IE8をサポートする必要はありません。
<!DOCTYPE html>
<!--[if lt IE 9]><html class="ie ie8"><![endif]-->
<!--[if IE 9]><html class="ie ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html><!--<![endif]-->
<head>
...
<!--[if lt IE 8]><meta http-equiv="Refresh" content="0;url=/error-browser.html"><![endif]--
...
</head>
IEブラウザのバージョンを選択解除する必要がある場合は、以下のコードに従うことができます。このコードはIE6からIE11までのバージョンIE6に適しています
<!DOCTYPE html>
<html>
<body>
<p>Click on Try button to check IE Browser version.</p>
<button onclick="getInternetExplorerVersion()">Try it</button>
<p id="demo"></p>
<script>
function getInternetExplorerVersion() {
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE ");
var rv = -1;
if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // If Internet Explorer, return version number
{
if (isNaN(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))))) {
//For IE 11 >
if (navigator.appName == 'Netscape') {
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
alert(rv);
}
}
else {
alert('otherbrowser');
}
}
else {
//For < IE11
alert(parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))));
}
return false;
}}
</script>
</body>
</html>