LeopardのSafari 3.0で変わったこと

Leopardにアップグレードしたことで、Safariが3.0になり、JavaScriptの挙動などにいくつか変化がありました。
大きなところは
http://webkit.org/blog/122/webkit-3-10-new-things/
に描いてある通りなんですが、マイナーな変更点で、気づいたところをいくつか。

イベントのマウス座標

onmousedownなどで渡されるEventのクラス変数 clientX, clientYが、従来はスクロール位置に関わらずページの左上を原点とした座標が入っていましたが、仕様通りのウィンドウに表示されている部分の左上が原点になりました。従って、ページ内のマウス位置は

function move(e) {
	e = e || event;
	x = e.clientX + document.body.scrollLeft;
	y = e.clientY + document.body.scrollTop;
...
}
document.onmousemove = move;

などとしてとることになります。従来Safariを判別して場合分けしていたケースでは、navigator.userAgent等を見てバージョンも判別が必要かもしれません。

重いスクリプトの停止

無限ループするようなJavaScriptを動かすと、一定時間後に、JavaScriptのせいで反応が止まっているが中止するか?ときいてくるようになりました。

画像ファイルなど、HTML以外のページに対してJavaScriptが実行可能になった

これまでBookmarkletなども画像のみを表示しているときには動きませんでしたが、Safari 3ではちゃんと動きます。

ボタン色の反映

JavaScriptではありませんが、ボタンの背景色などの色が反映されるようになりました。

テキスト入力が妙に遅い

特に日本語だと…。何かイベント処理してるのだろうか。
追記。SafariStandを外したら比較的まともな速度になりました。
あれ、SIMBLとかから再インストールしたら直った??

EUC-JPでも「\」が「\」として送られるように。

今まで「?」に化けてしまっていましたが、これでSafariでもプログラミング関連の日記も安心して書けます。^^;