次にコードを通して説明します。詳細については以下を参照してください。
IE ブラウザと IE 以外のブラウザの違いは、IE ブラウザは ActiveXObject をサポートしますが、IE 以外のブラウザは ActiveXObject をサポートしないことです。 IE11 ブラウザが登場する前は、これが IE と非 IE の判断方法でした
しかし、IE11 では、上記の判定は false を返します。IE11 で次のコードをテストしました。
Microsoft の公式 Web サイトでは、IE11 の ActiveXObject の違いについて説明しています。
IE6 ブラウザを判断します
IE 7 以降、IE は XMLHttpRequest オブジェクトをサポートしますが、IE6 はサポートしません。この機能と、IE を判断するための以前の関数 isIe() に基づいて、IE6 を判断する方法がわかりました。判定方法は以下の通りです。
IE8からドキュメントモードがサポートされるため、document.documentModeをサポートします。 IE7 はこれをサポートしていませんが、IE7 は XMLHttpRequest オブジェクトをサポートしています。判定方法は以下の通りです。
IE8 ブラウザを判断します
Microsoft は IE9 から徐々に標準に近づいています。IE678 を非標準ブラウザと呼び、IE9 と chrome や Firefox などの他のブラウザを標準ブラウザと呼びます。 2 つの違いの 1 つは、alert(-[1,]);//IE678 では NaN が出力されますが、標準ブラウザでは -1
上記の違いから、IE8 ブラウザであると判断できます。その方法は次のとおりです:
function isIe8(){ // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false return isIe() &&!-[1,]&&document.documentMode; }
IE9、IE10、IE11 ブラウザを判断します
ブラウザは IE8 から JSON 組み込みオブジェクトをサポートし、IE10 からは js の strict モードをサポートします。 IE9 では、alert(!-[1,]) は false を返します。IE9 は addEventListener をサポートしますが、IE11 ブラウザーは IE 独自の独自のイベント バインディング AttachEvent をサポートしません。これらの違いに基づいて、IE9、IE10、および IE11 ブラウザーを区別できます。
他のブラウザを判断します
//检测函数 var check = function(r) { return r.test(navigator.userAgent.toLowerCase()); }; var statics = { /** * 是否为webkit内核的浏览器 */ isWebkit : function() { return check(/webkit/); }, /** * 是否为火狐浏览器 */ isFirefox : function() { return check(/firefox/); }, /** * 是否为谷歌浏览器 */ isChrome : function() { return !statics.isOpera() && check(/chrome/); }, /** * 是否为Opera浏览器 */ isOpera : function() { return check(/opr/); }, /** * 检测是否为Safari浏览器 */ isSafari : function() { // google chrome浏览器中也包含了safari return !statics.isChrome() && !statics.isOpera() && check(/safari/) } };
以上がこの記事の全体的な紹介です。皆様のお役に立てれば幸いです。