1. ホーム
  2. javascript

[解決済み】ブラウザのポップアップブロックを回避する方法

2022-04-17 16:27:29

質問

OAuth認証フローを純粋にJavaScriptで開発しているのですが、ユーザーにポップアップで "アクセス許可"ウィンドウを表示したいのですが、ブロックされます。

のどちらかで作成されるポップアップウィンドウを防ぐにはどうしたらよいでしょうか? window.open または window.showModalDialog を、各ブラウザのポップアップブロックにブロックされないようにするには?

解決方法は?

一般的に、ポップアップブロッカーは次のような場合に作動します。 window.open によって呼び出されていないjavascriptから呼び出された場合、またはそれに類似する場合。 ユーザーによる直接操作 . つまり window.open をボタンクリックに反応させてもポップアップブロッカーにヒットしませんが、同じコードをタイマーイベントに入れるとブロックされます。 コール・チェーンの深さも要因の一つです。古いブラウザでは直前の呼び出し元しか見ないものもありますが、新しいブラウザでは呼び出し元の呼び出し元がマウスクリックかどうかなど、少しさかのぼって見ることができます。 ポップアップブロッカーを避けるために、できるだけ浅くしてください。