バックエンドから URL を渡し、それを受信した後、フロントエンドは新しいウィンドウを開いてこのリンクにジャンプします。 window.open(url, '_blank'); を使用します。ブラウザによって傍受されます。
window.open(url, '_blank'); を使用します。
これを実現する方法はありますか? a タグのクリックをシミュレートしようとしましたが、p がポップアップして iframe をロードしても、ウィンドウを開く必要があります。< /p>
問題は解決されました。承認された回答を参照してください。
学习是最好的投资!
この問題では、まずブラウザが「非人工的」呼び出しを行う理由を理解する必要がありますwindow.open的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过window.open打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了解决方法可以先在操作(比如点击)的时候,直接window.open、次に ajax にアクセスしてデータを取得し、開いたウィンドウに近似的な疑似コードを割り当てます。は次のとおりです:
window.open
リーリー
何も問題ありません。
なぜ _blank を追加するのですか?
URL に http または https ヘッダーがある場合
メソッドをトリガーするイベントをaタグとして記述し、aタグが指すControllerにURLを取得するロジックを記述してから、つまりwindow.openメソッドをバイパスして新しいページに戻ります
セキュリティ上の理由から、ブラウザはポップアップを自動的にブロックします
ユーザーがクリックしてから短期間に新しいウィンドウを開くコマンド (window.open など) のみが傍受されません。これはブラウザーのセキュリティ制限です。
Ajax リクエストにパラメーターをもう 1 つ追加してみてください:async: false
async: false
この問題では、まずブラウザが「非人工的」呼び出しを行う理由を理解する必要があります
リーリーwindow.open
的弹窗进行拦截,什么叫做"非人为"的,就是浏览器判断在用户操作和window.open
之间不是连续的,浏览器会认为可能是流氓程序弹出的广告窗口从而进行拦截从楼主的描述可以看出,楼主应该是进行某个操作之后,通过ajax去获取一个url,然后通过
window.open
打开页面,我们都知道ajax是异步的,浏览器就认为不是连续的,所以就拦截了解决方法可以先在操作(比如点击)的时候,直接
window.open
、次に ajax にアクセスしてデータを取得し、開いたウィンドウに近似的な疑似コードを割り当てます。は次のとおりです:リーリー
何も問題ありません。
なぜ _blank を追加するのですか?
リーリーURL に http または https ヘッダーがある場合
メソッドをトリガーするイベントをaタグとして記述し、aタグが指すControllerにURLを取得するロジックを記述してから、つまりwindow.openメソッドをバイパスして新しいページに戻ります
セキュリティ上の理由から、ブラウザはポップアップを自動的にブロックします
ユーザーがクリックしてから短期間に新しいウィンドウを開くコマンド (
window.open
など) のみが傍受されません。これはブラウザーのセキュリティ制限です。Ajax リクエストにパラメーターをもう 1 つ追加してみてください:
async: false