ホームページ ウェブフロントエンド jsチュートリアル IE ブラウザ (IE10 および IE11 と互換性がある) を素早く判断するための推奨される js の読み方_JavaScript スキル

IE ブラウザ (IE10 および IE11 と互換性がある) を素早く判断するための推奨される js の読み方_JavaScript スキル

May 16, 2016 pm 03:26 PM
つまりブラウザ js 判断

IE ブラウザが window.navigator.userAgent を使用しているかどうかを確認します。この情報を追跡すると、開発環境では IE10 として認識されますが、サーバーにアクセスすると IE11 として認識されますが、MSIE マークが表示されないことがわかります。 IE11のuserAgentにあるのが原因です。


IEブラウザの判定方法を以下に変更するだけです。

function isIE() { //ie?
 if (!!window.ActiveXObject || "ActiveXObject" in window)
 return true;
 else
 return false;
 }
ログイン後にコピー

ここにいくつかの共有があります。非常に実用的な分析と説明をご覧ください。

多くの場合、通常、IE ブラウザのバージョンを決定するために navigator.userAgent と正規表現を使用します。ここでは、IE ブラウザのさまざまな機能を使用して IE ブラウザを決定する方法を紹介します。

1 IE ブラウザと非 IE ブラウザを決定します

IE ブラウザと IE 以外のブラウザの違いは、IE ブラウザは ActiveXObject をサポートしますが、IE 以外のブラウザは ActiveXObject をサポートしないことです。 IE11 ブラウザが登場する前は、これが IE と非 IE の判断方法でした

function isIe(){
 return window.ActiveXObject ? true : false;
 }
ログイン後にコピー

しかし、IE11 では、上記の判定は false を返します。私は IE11 で次のコードをテストしました。

コードをコピーします コードは次のとおりです:

アラート(window.ActiveXObject);
アラート(ウィンドウの種類.ActiveXObject);

結果は次のとおりです

これはなぜですか?明らかに ActiveXObject は存在​​しますが、typeof の結果は確かに未定義です。結果を知っている人は理由を教えてください。シェンマに?

Microsoft の公式 Web サイトでは、IE11 の ActiveXObject の違いについて説明しています。 http://msdn.microsoft.com/en-us/library/ie/dn423948%28v=vs.85%29.aspx。ただし、typeof の理由は説明されていません。

を検出するには次のコードを使用すれば問題ありません。

alert("ActiveXObject" in window)//ie11 では false を返します

これまた理解できないのですが、IE ブラウザの判定に使用されているコードが IE11 で true を返すのはなぜでしょうか。もう一度、専門家に説明を求めます。ありがとうございます
以下は、IE ブラウザーまたは非 IE ブラウザーが IE11 と互換性があるかどうかを判断する直接的な方法です。

function isIe(){
 return ("ActiveXObject" in window);
 }
ログイン後にコピー

プログラム コード内の ActiveXObject を上書きしないことが前提条件であることに注意してください。これを行うプログラムはありません。ふふ。

2 IE6 ブラウザを決定します

IE 7 以降、IE は XMLHttpRequest オブジェクトをサポートしますが、IE6 はサポートしません。この機能と、IE を判断するための以前の関数 isIe() に基づいて、IE6 を判断する方法がわかりました。判定方法は以下の通りです

function isIe6() {
 // ie6是不支持window.XMLHttpRequest的
 return isIe() && !window.XMLHttpRequest;
 }
ログイン後にコピー

3 IE7 ブラウザを決定します

IE8からドキュメントモードがサポートされるため、document.documentModeをサポートします。 IE7 はこれをサポートしていませんが、IE7 は XMLHttpRequest オブジェクトをサポートしています。判定方法は以下の通りです

function isIe7() {
 //只有IE8+才支持document.documentMode
 return isIe() && window.XMLHttpRequest && !document.documentMode;
 }
ログイン後にコピー

4 IE8 ブラウザを決定します

Microsoft は IE9 から徐々に標準に近づきつつあり、IE678 を非標準ブラウザと呼び、IE9+ および chrome や Firefox などの他のブラウザを標準ブラウザと呼びます。両者の違いの 1 つは次のとおりです。次のコードをテストしてください。返されるもの

alert(-[1,]);//IE678 で出力されるのは NaN ですが、標準ブラウザで出力されるのは -1

上記の違いから、IE8 ブラウザであると判断できます。方法は以下の通りです

function isIe8(){
 // alert(!-[1,])//->IE678返回NaN 所以!NaN为true 标准浏览器返回-1 所以!-1为false
 return isIe() &&!-[1,]&&document.documentMode;
}
ログイン後にコピー

5 IE9、IE10、IE11 ブラウザを決定します

ブラウザは IE8 から JSON 組み込みオブジェクトをサポートし、IE10 から JS の strict モードをサポートします。JS の strict モードについては、この記事を参照してください。http://www.jb51.net/article /75037 .htm

IE9 以降の

Alert(!-[1,]) は false を返します。IE9 以降では addEventListener がサポートされていますが、IE11 ブラウザーは IE 固有の独自のイベント バインディング AttachEvent をサポートしていません。これらの違いに基づいて、IE9、IE10、および IE11 ブラウザーを区別できます。

6 他のブラウザを決定します

/****来自曾经项目中封装的公共类函数***/
//检测函数
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/);
 }
};
ログイン後にコピー

js は IE11 を含む IE ブラウザのバージョンをどのように判断します

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.jb51.net/" />
<title>脚本之家</title>
<script type="text/javascript">
var userAgent = navigator.userAgent, 
rMsie = /(msie\s|trident.*rv:)([\w.]+)/, 
rFirefox = /(firefox)\/([\w.]+)/, 
rOpera = /(opera).+version\/([\w.]+)/, 
rChrome = /(chrome)\/([\w.]+)/, 
rSafari = /version\/([\w.]+).*(safari)/; 
var browser; 
var version; 
var ua = userAgent.toLowerCase(); 
function uaMatch(ua){ 
 var match = rMsie.exec(ua); 
 if(match != null){ 
 return { browser : "IE", version : match[2] || "0" }; 
 } 
 var match = rFirefox.exec(ua); 
 if (match != null) { 
 return { browser : match[1] || "", version : match[2] || "0" }; 
 } 
 var match = rOpera.exec(ua); 
 if (match != null) { 
 return { browser : match[1] || "", version : match[2] || "0" }; 
 } 
 var match = rChrome.exec(ua); 
 if (match != null) { 
 return { browser : match[1] || "", version : match[2] || "0" }; 
 } 
 var match = rSafari.exec(ua); 
 if (match != null) { 
 return { browser : match[2] || "", version : match[1] || "0" }; 
 } 
 if (match != null) { 
 return { browser : "", version : "0" }; 
 } 
} 
var browserMatch = uaMatch(userAgent.toLowerCase()); 
if (browserMatch.browser){ 
 browser = browserMatch.browser; 
 version = browserMatch.version; 
} 
document.write(browser+version);  
</script>
</script>
</head>
<body>
 
</body>
</html>
ログイン後にコピー

上記のコードは判定機能を実装しています。ここではその実装原理を紹介します。

まずコードの一部を見てみましょう:

navigator.userAgent

IE11 での情報のスクリーンショット:

次に、対応する正規表現を使用して照合します。 IE11 と以前のバージョンのブラウザーの間には依然として大きな違いがあります。以前のバージョンでは、この情報に msie が含まれていましたが、IE11 では、Trident が新たに追加され、その後にブラウザーのバージョン番号が続くことに特に注意してください。これ。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Web ページ上の画像を読み込めない場合はどうすればよいですか? 6つのソリューション Web ページ上の画像を読み込めない場合はどうすればよいですか? 6つのソリューション Mar 15, 2024 am 10:30 AM

一部のネチズンは、ブラウザの Web ページを開いたときに、Web ページ上の画像が長時間読み込めないことに気づきました。何が起こったのでしょうか?ネットワークは正常であることを確認しましたが、どこに問題があるのでしょうか?以下のエディタでは、Web ページの画像が読み込めない問題に対する 6 つの解決策を紹介します。 Web ページの画像を読み込めない: 1. インターネット速度の問題 Web ページに画像が表示されません。これは、コンピュータのインターネット速度が比較的遅く、コンピュータ上で開いているソフトウェアが多いためと考えられます。また、アクセスする画像が比較的大きいため、読み込みタイムアウトが原因である可能性があります。その結果、画像が表示されません。ネットワーク速度をより多く消費するソフトウェアをオフにすることができます。タスク マネージャーに移動して確認できます。 2. 訪問者が多すぎる Web ページに写真が表示されない場合は、訪問した Web ページが同時に訪問されたことが原因である可能性があります。

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

360 スピードのブラウザ互換モードを設定する方法 360 スピードのブラウザ互換モードを設定する方法 Feb 24, 2024 am 10:49 AM

360 Speed Browser は、ユーザーがインターネットに迅速かつ安全にアクセスできるようにする人気のブラウザ アプリケーションです。ページ表示の異常や機能が正常に利用できない問題を解決するために、360 Extreme Browser では快適にウェブを閲覧できる互換モード機能を提供しています。では、360 スピードのブラウザ互換モードを設定するにはどうすればよいでしょうか?心配しないでください。エディターが 360 Extremely Fast Browser の互換モードを設定する方法に関するチュートリアルを提供します。お役に立てれば幸いです。 360 Speed Browser の互換モードの設定方法 1. 当サイトからダウンロードした 360 Speed Browser を開き、起動後、右上隅の 3 本の横棒アイコンをクリックします。 2. ポップアップオプションの[設定]をクリックします。 3. 開いた 360 Speed Browser 設定ウィンドウをクリックします。

Windows 11 で信頼済みサイトを設定する方法_Windows 11 の IE で信頼済みサイトを追加する方法 Windows 11 で信頼済みサイトを設定する方法_Windows 11 の IE で信頼済みサイトを追加する方法 May 08, 2024 pm 01:11 PM

1. まず、システムで IE ブラウザを開き、右上隅にある歯車の形のボタンを見つけてクリックします。 2. クリックするとドロップダウンメニューが表示されるので、[互換表示設定]をクリックします。 4. [この Web サイトを追加する] に追加する URL を入力し、右側の [追加] をクリックします。

デュアルコアブラウザとは何ですか? デュアルコアブラウザとは何ですか? Feb 20, 2024 am 08:22 AM

デュアルコアブラウザは、2つの異なるブラウザコアを統合したブラウザソフトウェアです。カーネルはブラウザの中核部分であり、Web コンテンツのレンダリング、Web スクリプトやその他の機能の実行を担当します。従来のブラウザは通常、Trident カーネルを使用する IE ブラウザ、WebKit/Blink カーネルを使用する Chrome ブラウザ、Gecko カーネルを使用する Firefox ブラウザなど、単一のカーネルのみを使用します。デュアルコア ブラウザは 2 つの異なるコアを 1 つのブラウザに統合しており、ユーザーは必要に応じてそれらを自由に切り替えることができます。デュアルコアブラウザの登場

エッジブラウザで広告をオフにする方法は?エッジブラウザで広告をオフにする方法の紹介 エッジブラウザで広告をオフにする方法は?エッジブラウザで広告をオフにする方法の紹介 Mar 14, 2024 pm 03:49 PM

Edge ブラウザは、現在 Windows システムにインストールされているブラウザ ツールです。多くのユーザーは、エッジ ブラウザを使用すると、多数の広告ポップアップが表示されることに気づきます。多くの人が、これらの広告を閉じるように設定する方法を知りたいと考えています。この問題に対応して、Today's Softwareこのチュートリアルは、大多数のユーザーの質問に答えるためにここにあります。次に、詳細な手順を見てみましょう。エッジ ブラウザ広告をオフにする方法の紹介: 1. ソフトウェアを起動し、ページ上部の右側にある三点アイコンをクリックし、ドロップダウン オプション メニューで [設定] を選択します。 2. 新しいインターフェイスで、[詳細設定] をクリックし、[Web サイトの設定] で [使用] を見つけます。

エッジブラウザで互換モードを設定するにはどうすればよいですか? Edge ブラウザの互換性設定はどこで行うのですか? エッジブラウザで互換モードを設定するにはどうすればよいですか? Edge ブラウザの互換性設定はどこで行うのですか? Apr 15, 2024 pm 02:46 PM

エッジ ブラウザは、シンプルなインターフェイスながら充実した機能を備えたブラウザ ソフトウェアです。新しいバージョンのエッジ ブラウザに互換モードを設定したいと考えている人もいます。このチュートリアルでは詳細な操作チュートリアルを提供しますので、皆様のお役に立てれば幸いです。 Edge ブラウザ互換モードの設定 1. コンピュータの左下隅にあるスタート メニューをクリックし、Microsoft Edge ブラウザを選択します。 2. Edgeブラウザを開いたら、右上隅の「…」アイコンをクリックします。 3. ポップアップ オプションの [Internet Explorer で開く] オプションをクリックします。 4. IE を開いて閲覧します。

win7 システムブラウザが常に自動的に Web ページをポップアップする問題を解決する手順 win7 システムブラウザが常に自動的に Web ページをポップアップする問題を解決する手順 Mar 26, 2024 pm 09:30 PM

1. IEブラウザをご利用の場合は、図のようにIE画面の[ツール]から[インターネット オプション]を選択します。ページの下で、[ポップアップ ブロッカーを有効にする] にチェックを入れて確認します。図に示すように: 3. IE ブラウザ以外の場合は、Firefox などで設定することもでき、メイン メニューを開いて [オプション] を選択します。 ; 図のように 表示: 4. オプション設定画面で [コンテンツ] を選択し、右の画面で [ポップアップ ウィンドウをブロックする] にチェックを入れます; 図のように: 5. C: WINDOWSsystem32driversetc フォルダーに移動し、hosts ファイルを開き、プログラムを開くときに選択します。

See all articles