Safari is evil

April 30th, 2006

Internet Explorer の CSS 実装に怒る人は Safari の JavaScript 実装にも怒るべきだ、と思ったんだけど、シェアがあるのにバグがあるから困るわけで、シェアが無くてバグがあるなら無視すればいい気がしてきた。

そのくらいひどいです。

正規表現で "//" のエスケープが使えない

fladdict.net blog: 今見ているサイト内で「はてなブックマーク」されてるエントリ一覧を表示するブックマークレット

さっそく使ってみようとしたらsafariのおバカが…

matchで引っかかっているようです.正規表現中のスラッシュのエスケープ(//)をバックスラッシュ(\/)に変更したら動きました.他のブラウザではふつうに動くのになぁ.一応ご報告です.

"?" より前の "\" は "/" になる

これで Bookmarklet、なぜかSafariで読めないな… - openfb が解決すると思った人は Safari を甘くみています。

AvantBlog » Blog Archive » Safari Backslash Replacement Bug

In the href value of any anchor tag (link), all backslash characters appearing BEFORE a question mark character get replaced with forwardslash characters

javascript:alert('\ is backslash'); をクリックして実行すると「"\" is backslash」なのに、ブックマークツールバーに登録して実行すると「"//" is backslash」になります。

"?" さえあればいいので javascript:/*?*/alert('\ is backslash'); で回避できるけど、これでなんとかなることに逆にひく。

存在するのに動作はしないメソッドがある

ねこめしにっき(2005年6月)

event.stopPropagation() や event.preventDefault() とか、メソッド自体は明らかに存在してるのに、いざ使ってみると何も起きないの。ウソ実装イクナイ!

なんでこういうことするかね。

矢印キーの keyCode が変

上下左右は 38, 40, 37, 39 ではなくて 63232, 63233, 63234, 63235 です。

矢印キーというメジャーなキーで、一回テーブルをひけば解決しそうな問題だけに、もはや悪意すら感じます。

まとめ

最新のブラウザをお使いですか?

Web テクノロジーが進化するにつれて、 新しい技術が要求するものを表示できるようにブラウザも歩調を合わせて進化しなければなりません。アップルが、 ユーザエクスペリエンスの向上に必要な新しい技術に対応できると考えているブラウザは、 Safari 1.2以降、 Firefox 1.0.4以降、 および Windows 用の Internet Explorer 6 以降です。

(中略)

もしアップルが推奨するブラウザを使っていて機能しないサイトを見つけたら、 苦情を申し立てましょう。 そのサイトが、 Web 上でもっとも進化したものに対応できるブラウザでもうまく機能しないのはなぜなのか、 サイトオーナーに説明を求めるとよいでしょう。

へー。