ホームページ  >  記事  >  ウェブフロントエンド  >  Ajaxリクエストが成功した後の新しいウィンドウでのwindow.open()のインターセプトに対する解決策

Ajaxリクエストが成功した後の新しいウィンドウでのwindow.open()のインターセプトに対する解決策

高洛峰
高洛峰オリジナル
2017-01-09 14:25:251338ブラウズ

問題:

以前にプロジェクトを開発しているときに問題が発生しました。非同期 Ajax リクエストが成功した後、URL を開くために新しいウィンドウを開く必要がありますが、残念ながらこれがインターセプトされます。ブラウザでこの問題を解決するにはどうすればよいですか?
分析:

ブラウザが新しく開かれたウィンドウをインターセプトする理由は、その操作がユーザーによって積極的にトリガーされていないため、安全ではないと判断してインターセプトするためです(ただし、_self の場合、そのような制限はありません)。クリックや送信などのユーザーの動作を Ajax コールバック関数 (trigger('click')) でシミュレートしても、ブラウザはユーザーによって積極的にトリガーされていないとみなして安全に実行できないため、傍受された。
解決策:

1. 非同期を同期に変更します。つまり、async:false

2. 新しく開いたウィンドウをオブジェクトにポイントし、オブジェクトの URL を次のように変更します。最後に説明する必要があるのは、はい: フォームを動的に追加して新しいウィンドウを開くオンライン方法は、少なくともブロガーがテストしたところ、依然としてブラウザーによってインターセプトされたということです。

ajax リクエストが成功した後に新しいウィンドウを開いたときに window.open() がインターセプトされる問題を解決する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。