トップ ソフト 雑記 日記 リンク

2008年1月22日火曜日

IE Developer Toolbarを入れているとCSSの動的差し替えで落ちる

bottom:0pxを設定したオブジェクトが、画面書き換え時にドキュメントの下部に固定されない現象がでた。
ブラウザのサイズをいじると再びドキュメントの下部に移動するので、CSSを再認識してくれるまで反映されないのだろう。
resizeBy(0,1)
とかすると、回避できたけど、書き換えるたびに画面が広がっていく(笑)
しかも、ブラウザを最大化しているときは効果がないようだ。

いろいろ調べていて、CSSを指定するlinkタグのhrefを書き換えて、CSSを動的に切り替えるという技があるらしい。
早速getElementById('~').href = getElementById('~').hrefとかして再読込させる。
ktkr!
とか思っていたら、2回再読込した時点でIEが落ちた。
何回やっても落ちる。
むー、悔しいので20回ぐらいマイクロソフトにエラー送信してやった。

IEが落ちるようならもっと話題になっているだろうし…ということで原因はこちらにあると踏んで一般とは違う部分を考えてみると…。
IE Developer Toolbarをインストールしていた。
「アドオンの管理」から外してみると…ビンゴ。

しかしIE Developer Toolbarを外すのは痛いなぁ。
firefoxにはfirebug、IEにはIE Developer Toolbarってぐらいに開発には手放せない物になってるし。
問題の画面を触るときだけアドオンを外してIEを再起動とか面倒だしなぁ。

んでDOMの仕様書を調べてみると、ほかにも動的に切り替える方法があるみたい。
StyleSheets[].addRule使って置き換えれるのはどうだろう。
と書き換えてみると、ばっちり。IE Developer Toolbarを入れていても落ちなくなった。
IE Developer Toolbarってマイクロソフト製なんだけど、マイクロソフトの中の人はIE Developer Toolbarを使ってないのかなぁ。
それともCSSの一括差し替えとか手抜きはしないのだろうか?

0 件のコメント:

コメントを投稿

広告