Opera が唯一 javascript:for(;;)alert(''); に対抗できるブラウザ
Opera 10.50 から遂にダイアログ系が全てページごとに別々になった。ページ内ではちゃんとブロックするけど、ブラウザ全体はブロックしない。最も正しい挙動だと思う。
Opera は前々から、alert に script 実行を止めるチェックボックスがついていたり、Basic 認証のダイアログが大量に開いたとしても、同じ認証は1度入力すれば全て消える仕様になっていて、それなりにまともだったけれど、10.50 からは、もう煩わしい大量のダイアログに悩む必要がなくなった。素晴しい!
懸念されるようなこともないことはない。ページ内に Basic 認証のダイアログが表示される形になるので、フィッシィングサイトがでてくる可能性があるかもしれない。一応、Server という部分をクリックすると、ちゃんとダイアログがでて検証可能 (https の場合は証明書の確認・http の場合はフィッシングサイトではないか、という確認) になってる。まぁ知らないサイトの Basic 認証を入力することなんてないと思うけど……
現状の各ブラウザの挙動
javascript:for(;;)alert(''); したときの挙動 (Mac 版のみ)
- Google Chrome (4.0.249.43)
- OK のみのダイアログ、止める方法がない。該当タブを閉じることもできない。通常の方法で終了することもできない。
- Safari (4.0.4)
- OK のみのダイアログ、止める方法がない。該当タブを閉じることもできない。通常の方法で終了することはできる。
- Firefox (3.5.6)
- OK のみのダイアログ、止める方法がない。かなり頑張れば該当タブを閉じることができる。通常の方法で終了することはできる。
- Opera (10.50)
- OK + Stop executing scripts on this page のダイアログ。ページごとに独立。タブは普通に閉じられる。他のタブを見ているときには表示されない
