私はフォームを提出した後にPDFをダウンロードするためにクライアントサイトで作業しています。しかし、Chrome、Safari、FFでは、それらはすべて「ポップアップ」をブロックしています。私は、ブラウザがwindow.open()をブロックしないようにする方法についていくつかの記事を見てきました。それらは通常ajaxに関連していますが、私はajaxを使用していません。他の記事では、window.open()がclickイベントの中でのみ動作する方法について説明しています。それでも私にとってはうまくいかない。私はもはやwindow.open()を使用できません
それは感覚のトンがありませんが、私の例では、私はクリックをトリガーしようとすると、
<script>
jQuery(document).ready(function() {
jQuery(".gform_confirmation_message a").on("click", function(e){
e.preventDefault();
var newWin = window.open("", "_blank");
newWin.location = jQuery(".gform_confirmation_message a").attr("href");
});
jQuery(".gform_confirmation_message a").trigger("click");
});
</script>
私はjqueryの外で簡単なラインを入れた場合でも、動作しないとブロックされます。
var newWin = window.open("", "_blank");
また、これらのいずれかは、絶対に何もしません。それはブロックされたポップアップを表示しません。
jQuery(".gform_confirmation_message a").trigger("click");
OR
jQuery(".gform_confirmation_message a").click();
私はブラウザがスパム/広告のセキュリティでうんざりしていることは知っていますが、これはばかげています。
URLに行くページに追加された非表示のiframeはおそらく有効な回避策です。 – Taplar
@Carcigenicate window.open()は、年齢のjavascript機能でした。私のチームの他のプログラマーの誰もが、この機能を削除したすべてのブラウザーに固有のことを聞いたことはありません。 – pinksharpii
関連:https://stackoverflow.com/questions/3077242/force-download-a-pdf-link-using-javascript-ajax-jquery –