2012-02-10

IE に textContent は使えない

さっき、Firefox に innerText は使えないから textContent を使いませう、と書いたばかりなのに、今度は textContent が IE で使えないと言う。

ここで 2 つの選択肢が浮上。

  1. ブラウザー判定をして、textContent と innerText を使い分ける
  2. innerHTML を使う

今回、問題になっているコードでは innerHTML で十分。機能過多な気もするけれど間違いがない。一方、ブラウザー判定を入れると他のバグが混入しそう。バグが出るよりもシンプルなコードで。KISS!

(旧) a.textContent = post_title.textContent;
(新) a.innerHTML = post_title.innerHTML;

蛇足

メモ代全りに

  • innerText は IE が独自導入したプロパティ。W3C 非公認。Firefox 以外のブラウザーがサポート。
  • textContent は W3C が標準化したプロパティ。IE が非サポート。
  • innerHTML は W3C が標準化したプロパティ。全てのブラウザーがサポート。innerText/textContent がテキストだけを返すのに対して、innerHTML は HTML 要素もそのまま返す。

ref

No comments:

Post a Comment