2013年06月11日

Popbox.jsがIE9や10で動かない場合

Enchanです。

愛用していたPopbox.jsに問題が発生しました。
jqueryとは独立していて、画像をクリックすると拡大できるPopbox.js(2.7)ですが、
IE9や10ではクリックすると、一回目では起動しない現象がありました。
(ローディング画像がくるくる回り続けるだけで、拡大されません。しかし、もう一回クリックすると画像は拡大されます。)


Popbox.jsとは、
imgタグに『pbsrc』という属性を付け、『pbsrc』に拡大したときに表示したい画像のURLを書くんですね。Popbox.jsの初期処理では『pbsrc』が記述してあるimgタグ達を取得し、配列として持っておく。

マウスで画像をクリックしたときに、この配列をアクセスし配列内のオブジェクトのステータス『readyState』を見て、画像を拡大するか否かと決めているようです。

ここで、Firefoxやchoromeのブラウザでは配列内のオブジェクトのステータス(readyState)が『complete』(全データ読込完了状態)になっているのですが、ie9,10だと『uninitialized』(初期化未完了状態)となり、画像が拡大されません。

なぜuninitializedになるか? これは、誰かが何れ解明してくれるとして、
Popbox.jsをieブラウザの場合は上記の処理をチェックしないように修正して動くようにしたよ。

修正したファイルを置いておきますのでダウンロードはご自由に(v2.7を変更しています)


今のところ、このチェックを飛ばしたからといって変な不具合は出ていません。
まぁ、画像を拡大・縮小する単純なscriptなので、特に大きな問題にはならんでしょう。
※このプログラムは問題を回避しているだけであって、しっかりした修正ではありませんのであしからず。

posted by enchan at 15:26 | Comment(0) | TrackBack(0) | IT/プログラム
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/69246892

この記事へのトラックバック