私は何度も調べましたが、Internet Explorerを検出する方法はたくさんあることを理解しています。
私の問題はこれです:私のHTMLドキュメントには、クリックすると、あらゆる種類のInternet Explorerと互換性のない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の回答を求めているので重複ではありません。
Microsoft Edgeブラウザーを検出する方法もありますか?
理由はわかりませんが、他の人が話しているようにuserAgentに「エッジ」が表示されないので、一部の人に役立つ可能性のある別のルートをとる必要がありました。
navigator.userAgentではなく、navigator.appNameを調べて、IE <= 10かIE11およびEdgeかを区別しました。IE11とEdgeは「Netscape」のappNameを使用しますが、他のすべての反復は「Microsoft Internet Explorer」を使用します。
ブラウザーがIE11またはEdgeのいずれかであると判断した後、navigator.appVersionを調べました。IE11では文字列がかなり長く、多くの情報が含まれていることに気付きました。Edgeのnavigator.appVersionには含まれていない「Trident」という単語を任意に選びました。この単語をテストすることで、この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;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加