window.openでポップアップウインドウが開いてしまうのはクリックイベント以外だった
Google Chrome、firefoxでjavascriptのwindow.openで新しいURLを開く際、新しいタブに開かれるケースとポップアップウインドウが開いてしまうケースがあって、その違いがわからず困っていたのですが、以下のサイトに原因が書いてありました。
ポップアップを新規タブで開く(Opera Prestoのあれ) - それマグで!
- クリックよるwindow.open() → ウインドウ開く
- 任意のタイミングでのopen() → ポップアップブロック
悩んでいたケースでは、あるボタンが押されたら、AJAX(非同期)でAPIを呼び出して、その結果に含まれるURLを開く。という作りをしていました。非同期である事で、「クリックよるwindow.open()」ではなくなり、結果新しいウインドウで開いてしまっているのだと思われます。まだ試していませんが、同期で呼び出せば結果が違うのかもしれません。