我面临一个有趣的问题:
目前我有一个按钮,上面写着“打印”,它位于一系列页面的末尾,用户可以在其中输入信息、进行选择并获得独特的结果。
当他们按下此按钮时,表示应用程序状态的数据将通过 JQuery 的.post()
. 一旦目标脚本处理该数据并根据唯一 ID 将其存储在数据库中,该 ID 就会被发送回成功处理程序。然后在成功处理程序中使用该 ID 来打开一个新窗口,该窗口将下拉他们发送的数据并以可打印的方式显示它。
$.post("api/PrintJob.php", applicationStateJSON, function(response)
{
window.open("print/?job=" + response.token);
}, "json");
因为window.open()
调用不是直接在点击处理程序中,所以弹出窗口被阻塞是可以理解的。
我不能简单地使用window.location.href = ?;
,因为需要维护应用程序的状态,以防用户想要后退一步并进行一些更改等。
目前我唯一的解决方案是在成功处理程序中显示一个辅助按钮,然后启动打印窗口。但是,我更愿意保留当前的感觉并在新选项卡/窗口/弹出窗口/任何可能的情况下打开窗口,而不会被阻止。
也许有一种方法可以在我最初单击打印时将弹出窗口启动为空,然后在数据到达数据库时重新加载它?
欢迎任何想法。