この記事は私にとって非常に有益なので、マークを付けて再版します。
転載元: nczonline
Microsoft は先週、Windows 8.1 用の Internet Explorer 11 の最初のプレビュー バージョンをリリースしたばかりです。 WebGL、プリフェッチ、プリレンダリング、フレックスボックス、ミューテーション オブザーバー、その他の Web 標準のサポートなど、Internet Explorer 11 の新機能の一部を確認しました。しかし、さらに興味深いのは、これは Internet Explorer 11 と呼ばれていますが、もはや IE ではないということです。
Microsoft が Internet Explorer の一部の機能を実際に削除したのはこれが初めてです。ユーザー エージェント文字列の変更により、ブラウザーが IE であるかどうかを判断する多くのコード (一部の JavaScript isIE() メソッドを含む) が機能しなくなります。インターネット上で Explorer 11 で実行すると false が返されます。幸いなことに、Internet Explorer 11 は Web 標準を非常によくサポートしているため、以前の IE 固有の動作は必要なくなりました。
Internet Explorer 11 では、ユーザー エージェントは以前のバージョンよりも大幅に短くなり、最も重要な MSIE キーワードが削除されました:
また、上記のユーザー エージェントに Gecko ロゴが追加されていることに気づくでしょう。 Safari は、Gecko のマークが付けられた最初のブラウザです。
以前は、IE ブラウザのコードが動作しないかどうかを判断するために、ほとんどの人が MSIE を使用していましたが、代わりに Trident 文字列を使用して判断することができます。 Trident ロゴは IE9 で導入されました。
さらに、Microsoft は navigator オブジェクトも変更しました:
? navigator.appName の値は "Netscape" です
? navigator.product の値は "Gecko" です
これは開発者のトリックかもしれませんが、この動作は実際に行われています。 HTML5では実際にどのような仕様になっているのか。 HTML5 では、これら 2 つの属性は上記の対応する値を返さなければなりません。これは非常に奇妙なルールですが、Internet Explorer 11 はこのルールに準拠しています。これにより、ナビゲーター オブジェクトに基づいてブラウザ モデルを決定する一部の JavaScript コードが Internet Explorer 11 を Gecko ベースのブラウザとして認識します。
document.all とその友達
IE 4 以降、document.all は IE で重要な役割を果たします。 document.getElementById() と比較すると、 document.all は要素への参照を取得するための IE メソッドです。 IE 5 では DOM のサポートが追加されましたが、IE 10 までは document.all が使用されていました。これは Internet Explorer 11 で最終的に非推奨になりました。つまり、document.all を使用するコードは実際には機能しますが、Internet Explorer 11 で document.all を使用するメソッドは実行エラーを引き起こす可能性があります。
もう 1 つ放棄されるのは、イベント ハンドラーの追加に使用されるattachEvent() メソッドであり、イベント ハンドラーの削除には対応する detachEvent() メソッドが使用されます。これら 2 つのメソッドは Internet Explorer 11 では削除されます。これら 2 つのメソッドを削除するには、代わりに次のロジックを使用する必要があります:
もちろん、コードの実行がattachEvent の削除によって影響を受けないことを確認するために、テストには標準ブラウザの使用を優先することをお勧めします。 ()。しかし、インターネットには悪質な監視コードが溢れているため、アプリケーションが適切な基準に照らしてテストされていることを確認する必要があります。
削除された機能には以下も含まれます:
これらの非推奨のメソッドにはすべて、標準ベースの代替手段があります。標準の方法を使用している場合は、おめでとうございます。Internet Explorer 11 を直接サポートできます。
結論Internet Explorer 11 は Internet Explorer ファミリの最高のバージョンであるようです。過去の悪魔のようなバグのいくつかを最終的に削除することで、Microsoft はすべての人にとって真の標準ブラウザを準備しています。
更新: document.all は実際には削除されませんでしたが、非推奨になりました。