■Safari (ver 1)での不具合など
Macの標準のブラウザがInternet Explorer(IEと省略)からSafariになりました。IEでしか動作しないプログラムを作成した場合には、いくらかJavaScript部分で書き直しが必要になります。IE5以降でdocument.all〜という書き方や名前を直接指定していないW3C仕様のDOMに沿った普通の書き方(?)であればイベント部分の修正だけで良いでしょう。
と言ってもIE独自のイベントが結構あり、それらはサポートされていません。イベント発生時にキー状態や座標などは取得できますが以下のような問題もあります。
●問題がなさそうなEventプロパティ
x, y, ctrlKey(制限あり), metaKey(コマンドキーになります), cancelBubble, button(制限あり), screenX, pageX, pageY, offsetX, offsetY
●問題があるプロパティ
screenY(原点が左上でなく左下!このため値が逆になります)
type(テキストエリアでキーイベントが発生するとkeydownでなくkhtml_keydownといったIE,NNと互換性のない文字列を返す!)
また、キーイベントはキー入力が可能なテキストフィールド、テキストエリアなどに限られているようです。
イベントプロパティの取得もIEの
event.プロパティ名
ではなくNetscape, Opera同様に
function getEvent(evt)
{
evt.プロパティ
}
とする必要があります。他にも問題がありJavaScriptでフォームのボタンなどの部品のスタイル、背景色などを指定しても無効になってしまいます。(これはAquaインターフェースのため。今後はAquaでなくiTunesのようなメタル、アルミ調のようなものになりそう)。
何にしても今まではIE と Netscapeを考慮していたのがIEとSafariを考慮しなければいけなくなりました。場合によってはIE, Netscape, Safariの3つを考慮して作成する事になってしまうでしょう。運悪いとIE, Netscape, Safari, Operaというオチもありえます。