JavaScriptはブラウザがIEかどうかを判定します

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れている。いろいろサポートされていない。と確信しています。

一部のプロパティとメソッドはすべてのバージョンの IE でサポートされていませんが、一部は部分的にサポートされています。プロジェクトでは、主な境界線は IE8 です。現在保守および開発中のプロジェクトのほとんどは IE8 以上をサポートしていると思います。そこで、この記事では、ブラウザーが IE であり、そのバージョンが 8.0 であるかどうかを判断する方法を簡単にまとめます。

まず、一部のプロパティとメソッドはIEのすべてのバージョンでサポートされていないため、IEであるかどうかを判断するだけで済みます。

以下の3つは私がプロジェクトで使用した方法です。新しい方法があれば更新します。他にもっと良い方法があれば、ぜひ共有してください~~

  • ドキュメント.すべて
  • ウィンドウ.ActiveXオブジェクト
  • ウィンドウ.ナビゲーター.msSaveOrOpenBlob
//関数を1つ選択する isIE(){
 // Firefox は将来 document.all メソッドを追加すると言われているので、他の 2 つのメソッドを使用することをお勧めします。if (document.all) return true; 
 
 if (!!window.ActiveXObject || "ActiveXObject" in window) return true; 
 
 if (window.navigator && window.navigator.msSaveOrOpenBlob) が true を返します。 
}

ブラウザがIE8以下であるかどうかを確認する

上で述べたように、メンテナンスおよび開発中のプロジェクトのほとんどは IE8 以降のみをサポートしています。

ナビゲーター.userAgent

関数isIE8(){
 var DEFAULT_VERSION = 8.0; 
 var ua = navigator.userAgent.toLowerCase(); 
 var isIE = ua.indexOf("msie")>-1; 
 var safariバージョン; 
 if(isIE){ 
  safariVersion = ua.match(/msie ([\d.]+)/)[1]; 
 } 
 safariバージョン<=DEFAULT_VERSIONの場合{ 
  真を返す 
 };
}

特別な要件があり、下位バージョンとの互換性が必要な場合は、次の手順に従ってください。

var isIE = !!window.ActiveXObject; 

var isIE6 = isIE && !window.XMLHttpRequest; 

var isIE8 = isIE && !!document.documentMode; 

var isIE7 = isIE && !isIE6 && !isIE8;

CSS プロパティは IE8 以下ではサポートされていません

  • ボックスシャドウ
  • 線形グラデーション
  • プロンプトプレースホルダー
  • 透明度 RGBA
  • 境界線画像
  • 境界線の半径
  • 回転関連の変換

IEでサポートされていないメソッド

PDF ファイルをオンラインで参照します。IE には PDF リーダーが組み込まれていないため、ダウンロードして表示することしかできません。

  • バックエンドがファイル ストリームを返す場合: window.navigator.msSaveOrOpenBlob(blob); 詳細については、他の 2 つのブログ投稿を参照してください。
  • JavaScript はバックエンドから返された PDF ファイル ストリームを処理し、PDF ファイルをオンラインでプレビューしてダウンロードします。
  • Vue.js +pdf.jsは応答pdfファイルストリームデータを処理し、フロントエンドの画像プレビューをダウンロードできません

<a>タグのダウンロード属性はサポートされていないため、新しいiframeを作成してsrc属性を設定できます。

if (isIE()){
	$("a").bind('click',function(){
		var elemIF = document.createElement("iframe"); 
		elemIF.src = ファイルパス;
		elemIF.style.display = "なし"; 
		document.body.appendChild(要素IF);
	});
} それ以外 {
	$("a").attr("href",ファイルパス).attr("download",ファイル名);
}

以上がブラウザがIEかどうかを判定するJavaScriptの詳細です。ブラウザを判定するJavaScriptの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • NodeJSとブラウザにおけるこのキーワードの違い
  • ブラウザのウェブページの自動スクロールとクリックを実現する JavaScript のサンプル コード
  • JavaScript を使用してブラウザでウェブカメラを使用する方法
  • JavaScript を使用してブラウザ履歴 API を操作する方法
  • JSクロスブラウザXMLアプリケーションプロセスの詳細な説明
  • モバイルブラウザがWeChat共有を呼び出す(JS)
  • ブラウザのJavaScriptデバッグ機能は使用できません。解決策
  • よく使われるJavaScriptツールの機能まとめ(ブラウザ環境)
  • js に基づいてブラウザの種類を判断する例
  • 現在のブラウザが JavaScript でヘッドレス ブラウザであるかどうかを検出する方法

<<:  Dockerコンテナを使用してホストネットワークにアクセスする方法

>>:  Mysql の遅いクエリ操作の概要

推薦する

CSS3 のテキストとフォントの新しい設定

テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...

圧縮パッケージを使用して Linux 環境に JDK 13 をインストールする方法

JDK とは何ですか?まあ、この質問がわからないのであれば、なぜこれをインストールするのか本当にわか...

プロフェッショナルおよび非プロフェッショナルのウェブデザイン

まず、Web ページのスタイルの形成は、主に Web ページのレイアウト設計、ページの色処理、画像と...

Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル

この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...

MySQL でのテーブルの作成と削除の詳細な例

テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...

mysql8.0.21 のダウンロードとインストールに関する詳細なチュートリアル

公式ウェブサイトアドレス: https://www.mysql.com/インストールの提案: インス...

Tomcat が設定ファイルを外部に配置するためのソリューション

質問通常の開発では、プロジェクトを Tomcat にデプロイする場合、プロジェクトを war パッケ...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

CSSは5つの一般的な2D変換を実装します

CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間...

dockerにmysqlをインストールした後にNavicatが接続できない問題に対する完璧な解決策

1. Dockerがイメージをプルするdocker pull mysql (デフォルトで最新バージョ...