年に何度か

年に何度か書くブログ。昔は日記だった。

window.openでポップアップウインドウが開いてしまうのはクリックイベント以外だった

Google Chromefirefoxjavascriptのwindow.openで新しいURLを開く際、新しいタブに開かれるケースとポップアップウインドウが開いてしまうケースがあって、その違いがわからず困っていたのですが、以下のサイトに原因が書いてありました。

  • クリックよるwindow.open() → ウインドウ開く
  • 任意のタイミングでのopen() → ポップアップブロック
ポップアップを新規タブで開く(Opera Prestoのあれ) - それマグで!


悩んでいたケースでは、あるボタンが押されたら、AJAX(非同期)でAPIを呼び出して、その結果に含まれるURLを開く。という作りをしていました。非同期である事で、「クリックよるwindow.open()」ではなくなり、結果新しいウインドウで開いてしまっているのだと思われます。まだ試していませんが、同期で呼び出せば結果が違うのかもしれません。