Windows 7用のInternet Explorer 11がリリースされたので、ダウンロードサイト(http://windows.microsoft.com/ja-jp/internet-explorer/download-ie)からダウンロードしてインストールしてみた。衝撃的だったのは、開発ツールを使っても以前のバージョンをエミュレートできなくなったこと。アンインストールするべきか悩みながら、ブログを書いてみる。
インストールは特別な操作を必要としない。再起動せずにインストールを完了するか、再起動するかの選択肢しか出なかった。再起動せずにインストールを完了するためには、置き換えが必要なコンポーネントを利用しているアプリケーションを終了する必要があるが、終了するアプリケーションにエクスプローラーが含まれていたので再起動を選択してインストールした。
マイクロソフト社のInternet Explorer 11 開発者向けガイドによると、主な変更点は6点。
- 新しい互換性機能の強化によって、Internet Explorer 11 ではサイトのパフォーマンスが向上しています。
- WebGL、高 DPI のサポート、Canvas の新機能を利用した、高品質で超高速な 2D および 3D エクスペリエンスにより、JavaScript を使った Web サイトや Windows ストア アプリの機能が向上します。
- まったく新しい F12 開発者ツールにより、さまざまなブラウザーに対応したサイトや、JavaScript を使った Windows ストア アプリの開発やデバッグが容易になります。
- プリレンダリングとプリフェッチ、ネットワークの優先順位付け、戻るナビゲーションのキャッシュにより、実際のサイトの読み込みが高速化されます。
- 高精度で反応がよいタッチ ブラウズがエクスペリエンス全体に浸透しています。
- RSS を使ったライブ タイルのサポート、タイルの更新、タイル通知によって、パーソナル設定機能、Windows との統合、およびピン留めされたサイトの有効性が向上します。
インストールしたばかりなので、使い込んでいないし調査も不足しているが、気になる部分をまとめてみた。
一般ユーザーとして
一般ユーザーとして使う場合は、特に問題はなかった。以前は Internet Explorer 10を利用していたが、体感的には2倍程度早くなったような気がする。体感速度は、IE11 = Chrome、Firefox、IE10の順だろうか。Firefox は、大量にアドオンを入れているので少し不利かもしれない。ページの描画は、一番速い印象だ。「プリレンダリングとプリフェッチ、ネットワークの優先順位付け」や、「新しい互換性機能の強化」あたりが影響しているかもしれない。
Internet Explorer 10から移行したが、違和感なく使えているので一般ユーザーとして利用している人にはお勧めできる。
開発者として
開発者としてInternet Explorer 11 開発者向けガイドを見ると、とても気になる点が2つある。どちらの変更も、マイクロソフトが過去の Internet Explorer と決別し、Web 標準に準拠した最速のブラウザーを目指しているように感じる。Internet Explorer が Web 標準に準拠してくれるのはうれしいのだが、以前のバージョンが駆逐されない限り、「Internet Explorer 用のコード」を削除できない。JavaScript や CSS がすっきりしたコードになるのは、Windows XP/Internet Explorer 8のサポート終了後かもしれない。Internet Explorer 8のサポート終了を調べてみたら、2020年1月14日ではないだろうかという恐ろしいコミュニティの記事を見つけてしまいました。
Web 標準への準拠
Internet Explorer 11 開発者向けガイドからたどれる、IE11 の互換性の変更点を軽く読んだが、「ユーザーエージェントの変更」と「従来の API の追加、変更、および削除」が気になった。それぞれ、少しテストしてみた。
ユーザーエージェントの変更
複雑だったユーザーエージェント文字列は、以下のようにすっきりまとめられた。
- 互換性 (“compatible”) トークンとブラウザー (“MSIE”) トークンが削除されました
- “like Gecko” トークンが追加されました (他のブラウザーとの一貫性のため)
- ブラウザーのバージョンが、新しいリビジョン (“rv”) トークンによって報告されます
「他のブラウザーとの一貫性のため」という項目が印象的だ。実際に、ユーザーエージェントを、PHP で調べてみた。OS の括弧書きがないものは、Windows 7を使用している。
Internet Explorer 8(Windows XP) | Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C) |
---|---|
Internet Explorer 10 | Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0) |
Internet Explorer 11 | Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko |
たしかにすっきりしてる。
従来の API の追加、変更、および削除
Internet Explorer の独自 API であった、attachEvent や window.execScript が削除され、addEventListener、eval に置き換えられたとのこと(詳細はIE11 の互換性の変更点に記載されている)。もう、addEventListener があるかどうか、確認しなくてもよくなる(IE8以前を無視してよければだが。addEventListener は IE9からサポート)。早速試してみた。コードは単純に、「alert(window.attachEvent);」と。結果は、「undefined」だった。本当に削除されているようだ。
F12 ツールでの新機能
F12 ツールでの新機能によると、「Internet Explorer 11 の F12 ツールは、一から再構築」されているらしい。新しい機能が追加されているのはうれしいのだが、ブラウザーモードの変更ができなくなっている。
Internet Explorer 11の開発ツールで変更できるのは、ドキュメントモードのみ。ディスプレイの向きや解像度、位置情報などの変更ができるようになっているのは、Windows Phone や Surface を意識してほしいからだろう。
ブラウザーモードとドキュメントモードを簡単にまとめると、ブラウザーモードはユーザーエージェント文字列、バージョンベクター、ドキュメントモードを変更する。ドキュメントモードは、レンダリング方法を変更する。
ブラウザーモードを変更できれば、以前の Internet Explorer をエミュレートできるが、ドキュメントモードだけだと、レンダリング方法が変わるだけになる。HTML に<!–[if IE 7]>のような条件付きコメントを書いても理解してくれない。つまり、Internet Explorer 11では、以前のバージョンをエミュレートできない。
スマートな解決策はなく、ブラウザー、画面サイズ、GPS の場所をエミュレートするには、
完全ピクセルでのレイアウトが必要な場合や、ページの外観と動作が以前のバージョンの IE における特定の方法でのみ実行される場合は、Modern.ie にアクセスして、以前のバージョンの IE を使う仮想マシンをダウンロードすることをお勧めします。
と書いてある。
うーん、たしかに過去と決別した新しい Internet Explorer です。
Windows7にIE11を入れて、ブラウザーモードが消えて困ってるところ、
勉強させて頂きましたm(__)m
みなさん『ユーザーエージェント文字列』内に選択肢があるようなんですが
『カスタム』以外無い状態で・・・
もし、対策をご存じでしたらまた教えて頂けると嬉しいです(^_^;)
情弱者ですがよろしくお願い致しますm(__)m
以前は、ユーザーエージェント文字列はレジストリに格納していたようです。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
現在は、Internet から取得しているようです。
http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx
具体的には、レジストリの
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\BrowserEmulation\CVListPreviousDownloadUrl で定義されている URL、
https://iecvlist.microsoft.com/IE11/1379465767093/iecompatviewlist.xml
から取得しているようです。
実際に、ネットワークを切断した状態で F12 キーを押して「ユーザーエージェント文字列」を見てみると、
既定
カスタム
しかありませんでした。ネットワークに接続しても元に戻らず、再起動後、いろいろなユーザーエージェント文字列が表示されるようになりました。
このサイトにアクセスできない、もしくは会社のドメインのポリシーで何かを禁止されているなどが原因として考えられます。
何かの参考になればm(__)m
ご教授、ありがとうございました。
レジストリを見たらURLは確かにあり、アクセスも可能だったのですが
IE11には出てこないままで・・・
色々みましたがダメ元でダウンロード⇒インストールとexeを取りあえず走らせて
再起動したら・・・
表示しました(^_^;)
結果としては、IEは面倒です(笑)
それにしても過去ブラウザ確認はやはりもう出来ないんですね(+_+)
旧IEをvirtualに入れるか何か、考えますm(__)m
また何か良い方法があれば教えてください(^^ゞ
ありがとうございました(#^.^#)