問題:
以前にプロジェクトを開発しているときに問題が発生しました。非同期 Ajax リクエストが成功した後、URL を開くために新しいウィンドウを開く必要がありますが、残念ながらこれがインターセプトされます。ブラウザでこの問題を解決するにはどうすればよいですか?
分析:
ブラウザが新しく開かれたウィンドウをインターセプトする理由は、その操作がユーザーによって積極的にトリガーされていないため、安全ではないと判断してインターセプトするためです(ただし、_self の場合、そのような制限はありません)。クリックや送信などのユーザーの動作を Ajax コールバック関数 (trigger('click')) でシミュレートしても、ブラウザはユーザーによって積極的にトリガーされていないとみなして安全に実行できないため、傍受された。
解決策:
1. 非同期を同期に変更します。つまり、async:false
2. 新しく開いたウィンドウをオブジェクトにポイントし、オブジェクトの URL を次のように変更します。最後に説明する必要があるのは、はい: フォームを動的に追加して新しいウィンドウを開くオンライン方法は、少なくともブロガーがテストしたところ、依然としてブラウザーによってインターセプトされたということです。
ajax リクエストが成功した後に新しいウィンドウを開いたときに window.open() がインターセプトされる問題を解決する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。