タグ

ブックマーク / uupaa.hatenadiary.org (2)

  • HTML5の新要素をinnerHTMLで生成できないバグを回避する - latest log

    IE6〜IE8のinnerHTMLには問題が多く、そのひとつに、HTML5の新要素をわせると悪夢のようなDOMツリーを生成するというものがあります。 var div = document.createElement("div"); div.innerHTML = "<section>section</section>"; document.body.appendChild(div); 上記のコードを実行すると、body以下にはこのような構造ができてしまいます。 <body> <div> section </SECTION> </div> </body> どうやら、innerHTML に与える文字列を div でラップし、div要素の前に何か一つ以上のダミーの文字列を設定しておき、あとでアンラップすれば上手くいくようです。 http://jsdo.it/uupaa/IEInnerHTMLB

    HTML5の新要素をinnerHTMLで生成できないバグを回避する - latest log
    mickn
    mickn 2011/02/07
  • JavaScript で、画像本来のサイズ(幅, 高さ)を取得する方法 - latest log

    Opera で DOM Mutation Event を使用するコードを追記しました。 まとめを追加しました。 Opera パート2に取得できないケースが見つかったため、パート3 を追加しました。 rhino.jpg(幅:300px, 高さ:227px) を、 <img id="rhino" src="rhino.jpg" width="100" height="75" /> と、100 x 75 で表示している場合を例に、画像来のサイズを取得する方法をご紹介します。 Firefox, Safari, Google Chrome なら image.naturalWidth と image.naturalHeight を利用します。 image.naturalWidth と image.naturalHeight の初期値は 0 です。画像の読み込みが完了した時点で適切な値に更新されます。

    mickn
    mickn 2009/06/03
  • 1