私は興味深い問題に直面しています:
現在、一連のページの最後に「印刷」というボタンがあり、ユーザーは情報を入力したり、選択したり、独自の結果を得ることができます。
このボタンを押すと、アプリケーションの状態を表すデータがJQueryを介して送信されます.post()
。ターゲットスクリプトがそのデータを処理し、一意のIDに対してデータベースに格納すると、そのIDが成功ハンドラーに返送されます。次に、IDは成功ハンドラーで使用され、送信されたデータをプルダウンして印刷可能な方法で表示する新しいウィンドウを開きます。
$.post("api/PrintJob.php", applicationStateJSON, function(response)
{
window.open("print/?job=" + response.token);
}, "json");
window.open()
呼び出しはクリックハンドラー内に直接行われないため、ポップアップは当然のことながらブロックされます。
window.location.href = ?;
ユーザーが一歩戻って変更を加えたい場合などに備えて、アプリケーションの状態を維持する必要があるため、単純に使用することはできません。
現在、私の唯一の解決策は、成功ハンドラー内に2番目のボタンを表示し、それによって印刷ウィンドウを起動することです。ただし、現在の感触を維持し、新しいタブ/ウィンドウ/ポップアップ/可能であれば、ブロックされることなくウィンドウを開いておくことが望ましいです。
たぶん、最初に[印刷]をクリックしたときにポップアップを空で起動し、データがデータベースに到達したときにそれを再ロードする方法はありますか?
どんなアイデアでも大歓迎です。