エントリー本文
prototype.js と pngfix.js の競合を解消する
prototype.js の Ajax.Request と pngfix.js の処理が競合(あるいは干渉)して、pngfix.js 側の処理が正常に行われなくなるという問題の解消策です。
この問題の発端は、pngfix.js を利用した「Movable Type 4 の透過 PNG ロゴを IE6 以下のブラウザで透過する」と、prototype.js を利用した「BlogPeople 等のリンクリストによる表示の遅延を解消する(その2:Ajax編)」のカスタマイズを同時に行うと「PNGが透過されません」というご質問を頂いたことによるもので、本エントリーにて回答致します。
両スクリプトの読み込み順序を入れ替える実験を行ったところ、
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="http://user-domain/pngfix.js"></script>
<![endif]-->
をページの一番最後(body 終了タグの直後等)に配置すれば、PNGが透過されるようになりました。
ただしタイミングによってはステータスバーに、
(残り1項目)ページ http://~ を開いています...
という表示が継続してしまうので、完全な解決には至っていないかもしれません。
≫ SWFObjectとpngfix.jsは共存不可?? from mersy's lab
使うからには、ちゃんと中身をわからないといけないという指摘もありそうです。
ライブラリ等々を作ってくれてる方々に感謝しつつ使わせてもらってるわけですが。
... [続きを読む]
こちらの記事を参考に確認したところ問題なく透過できました!
まだ少ししか確認していませんが、今のところ
>(残り1項目)ページ http://? を開いています...
という表示は今のところ確認できていません。
ちなみにpngfix.jsの中身を見ている中で、
JavaScript の for 文のパフォーマンスを改善する
が適応できそうだった為、このカスタマイズも行っています。
ご教授ありがとうございました!
