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 の遅いクエリ操作の概要

推薦する

nginxはdockerコンテナ内に設定ファイルを自動的に生成します

企業が Docker 自動デプロイメントを構築する場合、Docker の実行時にコンテナ内の設定ファ...

MySQL でのトリガーとカーソルの紹介と使用

トリガーの紹介トリガーは、テーブルに関連付けられた特別なストアド プロシージャであり、テーブル内のデ...

xshellリモート接続の自動切断の問題の解決方法の詳細な説明

xshell を使用したリモート接続システムの自動切断の問題の解決策: 1. サーバー構成サーバーは...

Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

目次1. 三項演算子の判定2. 動的に設定されるクラス3. 方法判定4. 配列バインディング5. e...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

uniappは録音アップロード機能を実現

目次uni-app の紹介HTML部分js部分インスタンスを作成する録音を開始録音終了録音を再生再生...

Dockerコンテナに入る方法と出る方法

1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...

Vueのカスタムディレクティブの詳細なガイド

目次1. カスタム指示とは何ですか? 2. 指示をカスタマイズする方法フック機能3. 応用シナリオ入...

2時間のDocker入門チュートリアル

目次1.0 はじめに2.0 Dockerのインストール3.0基本的なDockerコマンド4.0 Do...

テキストエリアの使用に関する注意事項

なぜテキストエリアについて具体的に言及するのでしょうか?なぜなら、textarea ノードは実際には...

MySQLビューの原理と使用法の詳細な説明

この記事では、例を使用して MySQL ビューの原理と使用方法を説明します。ご参考までに、詳細は以下...

mysql5.6 マスタースレーブ設定と非同期の問題の詳細な説明

目次1. MySQL マスタースレーブレプリケーションの原理2. MySQLのコンパイルとインストー...

MySQL エラー コード 1862 の解決方法: パスワードの有効期限が切れています

ブロガーは 1 ~ 2 か月間 MySQL を使用していませんでしたが、今日この問題に遭遇しました。...

HTMLの基本構文は、HTMLを学び始めたばかりの人にとって便利です。

1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...

Vueは単純なランダムロールコールを実行します

目次レイアウト部分: <div id="アプリ"> <p>...