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://~ を開いています...
という表示が継続してしまうので、完全な解決には至っていないかもしれません。
- 複数のsubmitボタンをonsubmitで判定する方法
- JavaScriptの時間を0パディングする方法
- JavaScriptでJSONデータを作る方法
- JavaScriptやjQueryで設定されたイベントの定義場所を調べる方法
- javascript:void(0)のまとめ
- setTimeout()やsetInterval()で引数を渡す方法
- JavaScriptのFormDataの使い方
- JavaScriptメールアドレスチェッカー
- PCのブラウザでiPhoneやAndroidのようなパスワードフォームを実現するJavaScriptライブラリ「FormTools」
- JavaScriptでフォーカスのあたっている要素を取得する「document.activeElement」
- 入力フォームの全角・半角を勝手に変換してくれるJavaScript
- JavaScriptエラーを表示・確認する方法のまとめ
- ソーシャルボタンのJavaScriptでfunctionの前に「!」がついている理由
- JavaScriptでCSSの擬似クラスを設定する方法
- JavaScriptの正規表現で文字列を抜き出す「グループ化」
≫ SWFObjectとpngfix.jsは共存不可?? from mersy's lab
使うからには、ちゃんと中身をわからないといけないという指摘もありそうです。
ライブラリ等々を作ってくれてる方々に感謝しつつ使わせてもらってるわけですが。
... [続きを読む]
こちらの記事を参考に確認したところ問題なく透過できました!
まだ少ししか確認していませんが、今のところ
>(残り1項目)ページ http://? を開いています...
という表示は今のところ確認できていません。
ちなみにpngfix.jsの中身を見ている中で、
JavaScript の for 文のパフォーマンスを改善する
が適応できそうだった為、このカスタマイズも行っています。
ご教授ありがとうございました!
> 虎!さん
こんばんは。
ご連絡ありがとうございました。
無事に直ったようでよかったです。
ではでは!