当初、ブラウザが IE であるかどうかを判断したときは、navigator.userAgent で常に MSIE を使用できましたが、IE11 では userAgent に MSIE フィールドが含まれなくなりました
実際のプロジェクトでは、コンソールでのエラー報告に関して同様の問題が発生しました。 , ブラウザのモデルを検証する場合、具体的な方法は以下の通りです:
function getBrowserInfo(){
var Sys = {};
var ua = navigator.userAgent.toLowersCase();
var re = /( msie I firefox | opera version).*?([d.]+)/;
var m = ua.match(re);
Sys.browser = m[1].replace(/version/ , "'safari'");
Sys.ver = m[2];
return;
}
このメソッドによると、Sysで特定のブラウザ情報を取得でき、これを直接呼び出すことができます。
しかし、本番環境は突然ログインできなくなりました。ユーザーからのフィードバックは、操作に IE11 が使用されているため、具体的なエラーは次のとおりです。
【 SCRIPT5007: 取得できません。未定義または null 参照プロパティ" 1" ]
エラー表示位置によると、通常のマッチング後の位置決めでは m が取得できません;
解決後、ie11 ブラウザの navigator.userAgent が変更され、具体的には:
"Mozilla/ 5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Shuame; rv:11.0) like Gecko ";
それで、通常の判断を置き換えます: var re = /(msie I firefox | chrome | opera | version | rv:).*?([d.]+)/;
このようにして問題は解決され、ie11 との互換性も大幅に改善されましたが、まだまだ改良が続けられています。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
以上がIE11でのnavigator.userAgentの変更例のコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。