Image オブジェクトを appendChild すべきではない

December 04, 2007category: JavaScript 

Safari 1.x/2.x では、以下のコードは動かない。Safari 3.x では動く。

document.getElementById("hoge").appendChild(new Image());

なので、代わりに createElement を使う。

document.getElementById("hoge").appendChild(document.createElement("img"));

この掲示板によると (6 番の発言)

重箱の隅かつ板違いだけど、 (new Image)と、HTML DOMのcreateElement('IMG')は等価ではない。 前者が返すのはJavaScript 1.xのImageであり 後者が返すのはHTML DOMのHTMLImageElement。 styleアトリビュートが必要で、かつDOMノードとして挿入するなら後者を使わねばならない。 まぁ大抵のDOM実装で、互いを単なるショートカットと見なすのだが Safariは意外にきっちりしていて、ImageをDOMノードとしては扱えないので注意。

ということらしい。なるほど。

comments (0)このエントリーを含むはてなブックマークはてなブックマーク - Image オブジェクトを appendChild すべきではない

comments