[解決済み] Internet Explorer(IE)やMicrosoft EdgeをJavaScriptで検出するにはどうすればよいですか?
質問
Internet Explorer を検出する方法がたくさんあることはわかりました。
私の問題はこれです。私の HTML ドキュメントに、クリックすると、いかなる種類のインターネット エクスプローラーとも互換性のない JavaScript 関数を呼び出す領域があります。 IE が使用されているかどうかを検出し、もしそうなら、変数を true に設定したいのです。
問題は、私は Notepad++ からコードを書いているのですが、ブラウザで HTML コードを実行すると、IE を検出するためのメソッドがどれも機能しないことです。問題は、私がそれを Notepad++ から実行していることだと思います。IEを検出し、その変数に基づいてサイトのその部分を無効にすることができるようにする必要があります。私はこれを試しました。
var isIE10 = false;
if (navigator.userAgent.indexOf("MSIE 10") > -1) {
// this is internet explorer 10
isIE10 = true;
window.alert(isIE10);
}
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
if(isIE){
if(!isIE10){
window.location = 'pages/core/ie.htm';
}
}
と表示されるのですが、うまくいきません。Notepad++からIEを検出するにはどうしたらいいのでしょうか?HTMLのテストはそれで行っていますが、それで動作する方法が必要です。
編集
私は誰かがこれを重複としてマークしたことに気づきました、そしてそれは理解できます。私は明確でなかったと思います。 私はJQueryの回答を使用することはできませんので、これはバニラJSの回答を求めているので、重複ではありません。
編集#2
Microsoft Edgeブラウザを検出する方法もあるのでしょうか?
どのように解決するのですか?
なぜかわかりませんが、他の人が話しているように、userAgent に "Edge" が表示されないので、一部の人を助けるかもしれない別の方法を取る必要がありました。
navigator.userAgent を見る代わりに、IE<=10 か IE11 と Edge かを区別するために navigator.appName を見てみました。IE11 と Edge は "Netscape" の appName を使用し、他のすべての反復は "Microsoft Internet Explorer" を使用します。
ブラウザがIE11かEdgeであると判断したら、次にnavigator.appVersionに注目しました。IE11 の場合、この文字列はかなり長く、その中に多くの情報が含まれていることに気づきました。私は任意で「"Trident"」という単語を選びましたが、これはEdgeのnavigator.appVersionには絶対に含まれていません。この単語をテストすることで、2 つを区別することができました。
以下は、ユーザーがどの Internet Explorer を使用しているかを数値で返す関数です。Microsoft Edge の場合、12 という数字が返されます。
幸運と、これが役立つことを願っています
function Check_Version(){
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer'){
var ua = navigator.userAgent,
re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
if (re.exec(ua) !== null){
rv = parseFloat( RegExp.$1 );
}
}
else if(navigator.appName == "Netscape"){
/// in IE 11 the navigator.appVersion says 'trident'
/// in Edge the navigator.appVersion does not say trident
if(navigator.appVersion.indexOf('Trident') === -1) rv = 12;
else rv = 11;
}
return rv;
}
関連
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列をbooleanに変換するにはどうしたらいいですか?
-
[解決済み] 2つのJavaScriptオブジェクトのプロパティを動的にマージするにはどうすればよいですか?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] Javascriptで文字列の最後の文字を切り取るにはどうしたらいいですか?
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み】なぜ◎ܫ◎と☺はJavaScriptの変数名として有効ではないのでしょうか?
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] Node.jsのES6クラスをrequireで作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] ユーザーがIEを使用しているかどうかを確認する
-
[解決済み] JavaScriptで次の要素/前の要素を取得しますか?
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?