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

推薦する

スライドドアを実装するための CSS サンプルコード

いわゆるスライディングドアテクノロジーとは、さまざまな長さのテキストに合わせてボックスの背景を自動的...

初心者がHTMLタグを学ぶ(1)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

MySQL データ挿入最適化メソッドconcurrent_insert

スレッドがテーブルに対して DELAYED ステートメントを実行するときに、そのようなハンドラーが存...

js は丸で囲まれた数字のリストのサンプルコードを動的に追加します

1. まず本文にulタグを追加します <!-- 順序なしリスト --> <ul i...

Dockerイメージ内のファイルを表示する方法

Dockerイメージ内のファイルを表示する方法1. すでに実行中の場合すでに実行中のイメージについて...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.17のインストールと設定方法を参考までに紹介します。具体的な内容は...

Linux のファイル システム タイプの表示方法の例

Linux でパーティションのファイル システム タイプを確認する方法。パーティションのファイル シ...

JavaScript キャンバスで 9 マスのグリッドカットの効果を実現

この記事では、9グリッドカット効果を実現するためのキャンバスの具体的なコードを紹介します。具体的な内...

Linuxでawkを使用する方法の詳細な説明

awk を学ぶ前に、sed、grep、tr、cut などのコマンドを学んでおく必要があります。これら...

CentOS7でXShellとネットワーク設定を接続する方法

1. Linuxネットワーク構成ネットワークを構成する前に、まずローカル IPv4 アドレスやデフォ...

MySQL ステートメントを使用した簡単な追加、削除、変更、クエリ操作の例

この記事では、例を使用して、MySQL ステートメントを使用して、単純な追加、削除、変更、およびクエ...

Tencent Cloud Server Tomcat ポートにアクセスできない場合の解決策

最近、Tencent Cloudを使用してサーバーを設定しました。使用中に、tomcatポートにアク...

CSSスプライト技術は複数の背景を1つのPNG画像に統合しますCSSポジショニング

アメリカのYAHOOがページ制作で使用している画像統合技術。これらのアイコン、列背景、画像ボタンを定...

JavaScript タイマー原理の詳細な説明

目次1. setTimeout() タイマー2. setTimeout() タイマーを停止する3. ...

画像とテキストでHTTPヘッダーのあらゆる側面を理解する

HTTPヘッダーとはHTTP は「Hypertext Transfer Protocol」の略です。...