2009年11月6日金曜日

Safariだけ img要素の onloadの動きが違う

動的にsrc属性の値を変えた時、かつ変更前と変更後のsrc属性の値が同じ場合にonloadが実行されるかどうかが違う。
IE(7)、Firefox(3.5)ではonloadが実行されたが、Safari(4)では実行されなかった。


テスト用コード

<img src="test.jpg" alt="test"
 onload="alert('Loaded!')"
 onclick="this.src = 'test.jpg'" />


load時に"Loaded!"が表示されるのは同じだが、クリックした時にsrc属性に同じ値をセットしたタイミングで、Safariだけはonloadが走らない。
src属性にセットする値が元の値と別ならば、Safariでもonloadが走る。

こんな感じならSafariでもonloadが走る。
<img src="test.jpg" alt="test"

 onload="alert('Loaded!')"

 onclick="this.src = 'test2.jpg'" />




Safari曰く、「変わってないからloadしてない、だからonloadではない」そうだ。(推測)

0 件のコメント:

ブログ アーカイブ

tags