IE における setAttribute() や getAttribute() や removeAttribute() がだめだめな件
- 2010.07.01
- JavaScript
相変わらずクソな実装の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() で書けばいい訳で・・。
クロスブラウザにするには手間ががかかる・・。
-
前の記事
perl の配列処理で 標準モジュール List::Util を使う理由 2010.07.01
-
次の記事
Javascript でブラウザ判定 IE 6,7,8 と その他のブラウザ 2010.07.01