Nov 17, 2006
Firefox2のポップアップブロックについて調べてみた
なんかFirefox2ではポップアップブロックの挙動が変わってるというらしく、ポップアップを許可したサイトでもブロックされるというのでコメントをしたんだけど認識が違っていたようなので、気になってソースを読んで調べてみたりしたので、わかったことをメモしておく。Firefoxのポップアップブロックの挙動
- 許可サイトでなくても、完全に許可されるポップアップがある
-- ボタンやイベント設定された要素の左クリック
-- Enterキーか、スペースキーでボタンが押された場合(onclickが呼び出される操作)
-- ユーザーの設定に関わらず許可される、30個だろうと開く
--- これを防ぐのが「browser.tabs.maxOpenBeforeWarn」?
- 許可サイトでなくても、個数限定付きで許可されるポップアップがある
-- フォームの値変更なんかで開くポップアップ。
-- dom.popup_allowed_eventsに指定されているイベントタイプかどうかで判別。
-- デフォルトでchange click dblclick mouseup reset submitが登録されている。
-- デフォルトで20個まで許可される。(dom.popup_maximumの数値)
- 上記パターン以外のポップアップはブロックされる
-- 自動で表示されるポップアップなど、基本的に全部。
-- そのサイトを許可リストに入れている場合、20個まで許可される。(dom.popup_maximumの数値)
サイトまたはドメインでポップアップを許可していても、「dom.popup_maximum」の数値に引っかかってしまうようだ。逆に、許可した覚えのないサイトでも、ボタンのクリックであれば無制限にポップアップが開くし、許可パターンに一致していれば20個まではポップアップが開く。
感想
- せっかく情報バーというわかりやすいUIがあるのに何でこんなややこしいことをしているのか理解できない。- ユーザーが許可していてもブロックされることがあるというのは明らかに不自然。
で、livedoor Readerでブロックされるという件だけど、キー操作でウィンドウを開くってのはユーザーが起こしたイベントに紐付いたwindow.openではあるのだけれど、タイマーを使って順次開いたりしているので、ブラウザ側で判別するのは難しいだろうと思う。なんにせよサイトで許可していても開かないことがある、っていうのは、説明しづらくて非常に困る感じがする。(今のところabout:configやら拡張やらでdom.popup_maximumを増やすしか無いようだ。)
Edit this entry...
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.