【レポート】

IE9、ほかのブラウザと同じJavaScriptコード動作へ

 

Windows Internet Explorer 9

JavaScriptプログラミングでフラストレーションが溜まるポイントのひとつに、IEとそれ以外のブラウザで記述方法が異なることを挙げることができる。特にDOM周りのコーディングはIEだけ別の記述をしなければならない。しかし、これもIE8までの話ということになりそうだ。現在開発が進められているIE9ではこうした問題が解決している。どういった変更を実施したかがIEBlogのExploring IE9's Enhanced DOM Capabilitiesに詳しく説明されている。

これまでIEだけはDOM周りの実装がほかのブラウザと違っていた。これはDOMへのアクセスにCOMを使っていたことに原因がある。結果として、プログラマがすべてのブジェクトに期待する機能がIEの提供するDOMオブジェクトにだけは存在せず、別の方法を使って実現する必要があった。それにプログラミング的にも奇妙に思える挙動がいくつもあった。たとえばIE8以前では、DOMオブジェクトの関数はtypeofで関数としてではなくオブジェクトと判断される。

IE9ではほかのブラウザとの互換性の向上、WebIDLサポート、ECMAScript 5サポートなどが実施され、基本的にはほかのブラウザと同じコードが動作するようになる。IE8以前のIEとIE9におけるDOMまわりの振る舞いの主な違いは次のとおり。

  • IE8以前はDOMオブジェクトはホストオブジェクトとして扱われていた。ホストオブジェクトはオブジェクトに要求される基本的な機能を実装しなくてもよいという例外的な扱いになるため、IEのDOMオブジェクトには期待される機能がそろっていなかった。IE9ではDOMオブジェクトはネイティブオブジェクトとして実装されている。ほかのJavaScriptオブジェクトと同じように扱える。
  • IE8では関数を列挙できなかったが、IE9からは列挙できるようになっている。enumerableをtrueに設定したDOMオブジェクトのプロパティも列挙可能。
  • IE8までは暗黙的なDOMオブジェクトの関数呼び出しが可能だったが、IE9からはこれが禁止されており、正規の記述をしなければ実行されないようになっている。
  • userPropertyの扱いを変更。IE8以前はuserPropertyの扱いがほかのブラウザと違っていたが、これが他のブラウザと同じ挙動になる。

IE9からはDOMプログラミングモデルがほかのブラウザと同じになるため、基本的にほかのブラウザで動作するコードがIE9でも動作するようになる。これはWebデベロッパとしてはだいぶ助かる事実だ。当然、IE9が登場してからもIE6、IE7、IE8はシェアを保ち続けるだろうから、向こう数年はこれらレガシーブラウザを考慮したプログラミングを実施しなければならない。しかしながら、これが未来永劫続くことがなく、いずれはIEだけ切り分けるというJavaScriptコーディングから開放されることになる道しるべがみえてきたことは興味深い。

DOMオブジェクトの Enhanced DOM Capabilities demo実行例 IE9 PP4

Enhanced DOM Capabilities demo実行例 IE9 PP4

Enhanced DOM Capabilities demo実行例 IE9 PP4

Enhanced DOM Capabilities demo実行例 IE9 PP4 - フルで機能している

Enhanced DOM Capabilities demo実行例 Chrome 7開発版 - いくつかの機能は動作していない

Enhanced DOM Capabilities demo実行例 Opera 10.70開発版 - いくつかの機能は動作していない



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

高校生大興奮の動画「プロムポーズ」とは『仰天ニュース』
[06:00 7/27] エンタメ
はいだしょうこ&中野裕太、恋の炎が燃え上がる『家売るオンナ』第3話
[06:00 7/27] エンタメ
若手女優・吉岡里帆、SKE48松井珠理奈の親友役!『死幣』で女子大生役を熱演
[06:00 7/27] エンタメ
[新垣結衣]“主婦”役でラブコメに挑戦 可愛いウエディングドレス姿披露
[06:00 7/27] エンタメ
新垣結衣、ワケあり新妻役で連ドラ主演! 契約結婚描く『逃げ恥』ドラマ化
[06:00 7/27] エンタメ

求人情報