1. ホーム
  2. javascript

[解決済み] Internet Explorer 11の検出

2022-05-04 04:25:14

質問

IE 11 は他のすべての IE とユーザーエージェント文字列が異なることは知っています。

 Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko

この質問に指定された回答でIE 11を検出しようとしました。

JqueryがIE11の検出に失敗する

それは !!navigator.userAgent.match(/Trident\/7\./)

しかし、エラーが発生します。 Object not found and needs to be re-evaluated.

その後、IE11で開発者コンソールを開き、いくつかの定義済みのJavaScriptオブジェクトにアクセスしようとしましたが、私はまだ同じエラーが表示されます。

試してみたのは

navigator.userAgent

window.navigator

console.log('test');

どなたかお分かりになる方はいらっしゃいますか?

解決方法は?

2016年11月18日編集

このコードも動作します ( ActiveXを使用しない、別の解決策をお望みの方へ )

var isIE11 = !!window.MSInputMethodContext && !!document.documentMode;
  // true on IE11
  // false on Edge and other IEs/browsers.

オリジナル回答

Ie11 を確認するには、次のようにします。 ( テスト済み )

(または これ )

!(window.ActiveXObject) && "ActiveXObject" in window

IEのすべてのVMSを持っています。

注意:IE11では動作しません。

ここでわかるように、これは真を返します。

で、何ができるかというと.

どうやら、マシンビットのスペースを追加したようです。

ie11 :

"Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"

ie12 :

"Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; rv:11.0) like Gecko"

ということができます。

/x64|x32/ig.test(window.navigator.userAgent)

これはie11の場合のみtrueを返します。