2010年 7月 1

相変わらずクソな実装のIE。
他のブラウザで全部動くのにIE 7.0 以下の挙動はホントにクソ。
先人の方々に感謝感激雨あられですわ。

IEでのgetAttribute,setAttributeのバグ

// NG
element.getAttribute("class");
element.setAttribute("style", "background-color: #fff; color: #000;");
element.setAttribute("onclick", "clickHandler(event);");

// OK
element.getAttribute("className");
element.style.cssText = "background-color: #fff; color: #000;";
element.setAttribute("onclick", new Function("clickHandler(event);"));

IEでsetAttribute()とremoveAttribute()がうまく動かない問題 (ウップス!!なかわけ)

しかも、かなり重要なことを発見しました。

属性名を小文字で書かないとうまく動かない!!(IE7で確認)

setAttribute("onClick", new Function(""));

ではダメなのです。うまく処理されません。

setAttribute("onclick", new Function(""));

あー、これも引っかかってたわ。

ただし、上記の対応をすると他のブラウザで動かない。IE8 でもエラーが出る。IE 7以下用に振り分けないとダメなのか。。。

まぁ、そろそろIE7以下は捨ててもいいよ・・・ね?

結局

ベタにHTMLを document.write() で書けばいい訳で・・。
クロスブラウザにするには手間ががかかる・・。

More from my site


Filed under: JavaScript

Trackback Uri



コメントする