読者です 読者をやめる 読者になる 読者になる

「IE11」「JavaScript」 "IE11 標準モード" と "( 相互運用可能な ) Quirksモード" を判定する

JavaScript Internet Explorer

IE11 のドキュメントモードに "IE11 標準モード""( 相互運用可能な ) Quirksモード" てのがあるんですが、これを JavaScript で判定してみました。

Internet Explorer 11 - ダウンロード、ヘルプ、サポート、ガイド | TechNet
https://technet.microsoft.com/ja-jp/ie/dn262703
※ "IE11 標準モード" と "( 相互運用可能な ) Quirksモード" は「Internet Explorer 11 移行ガイド (Word: 15.0 MB)」に沿った表記です。

IE10 とかだと開発者ツールから確認できたと思うんですが、IE11 だとどっちも「Edge」になって確認できなくなってるんですね・・・
まぁ、ドキュメントモードは、以下あたりの設定で決定されるみたいなので、これを確認して判断してもいいんですが、なかなか面倒なので・・・

・互換表示設定
・DOCTYPE 宣言
・X-UA-Compatible ヘッダ
・META 要素

判定する JavaScript が以下です。といっても documentMode と compatMode の値を確認しているだけ。

  function getDocMode() {
    var docMode = document.documentMode + ":" + document.compatMode;
    alert(docMode);
  }

実行すると、docMode の値が以下みたいな感じなる。一応、判定できてそうです。

・"IE11 標準モード" -> 11:CSS1Compat
・"( 相互運用可能な ) Quirksモード" -> 11:BackCompat

・document.compatMode - Web API インターフェイス | MDN
https://developer.mozilla.org/ja/docs/Web/API/Document/compatMode


しかし、ドキュメントモードは種類も多いですし、決定される条件も色々ありますし、結構面倒くさいところですね・・・

ちなみに、IE11 ではドキュメントモード非推奨になってるみたいです。

・Document modes are deprecated (Windows)
https://msdn.microsoft.com/en-us/library/ie/dn384051.aspx
※ ドキュメントモードの決定ロジックも図示されてますね。

以上です。