Javascriptライブラリ'prototype.js'には要素のposition属性を位置を変えずに簡単に変えることができるメソッド
Element.relativize Element.absolutize
が用意されている。
それぞれCSSスタイルのposition属性を
relative
かabsolute
に変えてくれるメソッドだが'relativize'のIEでの挙動がどうも前々からおかしいなと思っていた。
例えば、下記のスクリプトはすべてのIMGタグのposition属性を'relative'に変えるごくごく簡単なスクリプトだが
$$('img').each(function(elem) { elem.relativize(); });
これをIEで実行するとエラーが起きる。
ただしこれを下のようにちょっと修正するだけで問題なく動いてはいた。
$$('img').each(function(elem) { elem.relativize(elem); });
まあ、動いたのでそれ以上考えず使っていたんだが、IE8では修正版の方も動かなくなってしまった。
そんなこんなで修正の必要があり、結局は
$$('img').each(function(elem) { elem.setStyle({ position: 'relative', top: '0px', left: '0px' }); });
こんな風に修正することになってしまった。
カテゴリ:
トラックバック(0)
トラックバックURL: http://blog.beanz-net.jp/beanz_mtos/mt-tb.cgi/65
コメントする