[JavaScript] 1IE11判定する方法

2 min read

userAgent を利用して取得する方法

一般的には下記のように IE の判定を行ってきた。

// userAgent を取得、小文字にする
const ua = window.navigator.userAgent.toLowerCase();

// ユーザーエージェントから Internet Explorer であるかを判定
const isIE = ua.indexOf("msie") >= 0 || ua.indexOf("trident") >= 0;

※ IE11 からはmsieではなくtridentという文字になっている

1 行で取得する方法

userAgent を利用した取得の方法は一般的で IE 以外のブラウザの反映にも利用できるため、ブラウザの判定という一貫で合理性があった。
ただ近年のモダンブラウザの対応によって、ブラウザの判定理由が「IE のみを判定する」になり、userAgent を利用するのは合理的ではない場面も多くなったように思う。

document.documentModeを利用する。

document.documentMode;

従来、 documentMode プロパティは、現在のドキュメントをレンダリングするために IE が使用するモードを返却する(IE 専用のプロパティで、IE8 から利用可能)。
このプロパティは、IE 以外のブラウザでは実装されていないため、IE 以外ではundefinedが返却される。

// ユーザーエージェントから Internet Explorer であるかを判定
const isIE = !!document.documentMode;

このページをシェアする

関連タグ

関連記事

[CSS] 究極のIE対策

条件付きコメント / メディアクエリを利用して IE10〜IE11 に対応する

Deprecated になった jQuery API を静的に検出する方法

モチベーション / eslint-plugin-no-jquery を導入する / 実行する

Boolean型の変数に適した命名規則

背景 / プレフィックス / どのような条件なのか分かりやすくする / 否定形を避ける / 同じ意味の単語を避ける / プロジェクトの命名規則やコーディング規約に従う / Linter で矯正する

CSS in JSとは何か

想定読者 / そもそも JS フレームワーク(React、Vue.js)を採用する理由とは何か / 「命令的 UI」 と 「宣言的 UI」 / 「命令的 UI」 VS 「宣言的 UI」 / CSS in JS とは / CSS in JS ライブラリ / Emotion の使い方 / 利用するメリット / 利用するデメ