打印对话框关闭后自动关闭窗口
|
用户单击按钮时,我会打开一个选项卡。在“ 0”上,我调出打印对话框,但是用户问我,是否有可能在将标签发送到打印机后关闭标签。我不确定是否可以做到。我曾尝试使用
setTimeout();
,但这不是定义的时间段,因为用户可能会分心并不得不重新打开该选项卡。有什么办法可以做到这一点?
没有找到相关结果
已邀请:
30 个回复
吞睫素
此解决方案将在Firefox中运行,因为在调用print()时,它将等待直到完成打印,然后继续处理javascript并关闭窗口。 IE会失败,因为它调用了close()函数而没有等待print()调用完成。在完成打印之前,弹出窗口将关闭。 解决此问题的一种方法是使用“ onafterprint”事件,但我不建议您这样做,因为这些事件仅在IE中有效。 最好的方法是在关闭打印对话框(打印完成或取消)后关闭弹出窗口。此时,弹出窗口将被聚焦,您可以使用\“ onfocus \”事件关闭弹出窗口。 为此,只需在弹出窗口中插入以下javascript嵌入式代码:
希望这个帮助;-) 更新: 对于新的Chrome浏览器,它可能仍会关闭太快,请参见此处。我已经实现了此更改,它适用于所有当前浏览器:16/2/29 /
闪票仇门韧
才改隘瘁
有用。
辰炔诚薯
这似乎适用于所有浏览器。
剿畦缄饥小
当页面打开时,它会自动打开打印对话框,在打印或取消后,它会关闭窗口。 希望能帮助到你,
犀寺扦
屡倒雷图
和
去工作。我的结果: 我已经关闭了打印对话,没有任何反应。 我在浏览器中更改了窗口/标签,仍然没有任何改变。 更改回我的第一个窗口/选项卡,然后触发window.onfocus事件以关闭窗口。 我还尝试了“ 12”,这导致窗口关闭,甚至无法在打印对话框中单击任何内容。 我不能使用其中任何一个。 因此,我使用了一个小Jquery来监视文档状态,并且此代码对我有用。
只需确保已包含jquery,然后将其复制/粘贴到要打印的html中即可。如果用户已打印,另存为PDF或取消了打印作业,则窗口/选项卡将自动自毁。注意:我只在chrome中测试过此功能。 编辑 正如Jypsy在评论中指出的那样,不需要文档焦点状态。您可以简单地使用noamtcohen的答案,我将代码更改为该代码即可。
熊融炭臀陛
宦哨抹存胳
闲窍
好按紊叉
程琶
启动该过程的按钮/链接只需调用此函数,如下所示:
拟蓬
单击并使用php和javascript打印并关闭新的选项卡窗口
外镶受继
)中的效果最好 上面的方法适用于IE,Chrome和FF(在Mac上),但在Windows上则没有FF。 https://stackoverflow.com/a/11782214/1322092
车料
在javascript中添加函数。
和jQuery ready事件。
现在,当打开任何URL时,只需附加查询字符串参数“ PrintAndClose = true”,它将打印并关闭。
bab
诉嘎归亮
之前设定27ѭ。 似乎很奇怪,因为您想预先设置钩子。我的猜测:当打开没有内容的窗口时,挂钩已经被触发。由于它已被发射,因此不会再次发射。但是,当仍然有新的ѭ29进行处理时,则在处理完成后将调用该挂钩。 仍需要30英镑。否则什么也不会发生。 我已经在Chrome 64.0,IE11(11.248),Edge 41.16299(edgeHTML 16.16299),FF 58.0.1中对此进行了测试。 他们会抱怨弹出窗口,但会打印出来。
膏焦凑
这是我的ES2016解决方案。
勺的驴吓识
耐扫鹤胶鞭
事件:您可以等待,但是它仅适用于IE(可能会也可能不会)。 或者,您可以尝试等待焦点从打印对话框返回到窗口并关闭它。 Amazon Web Services在其发票打印对话框中执行此操作:按下“打印”按钮,它将打开易于打印的视图,并立即打开打印机对话框。如果您点击打印或取消打印,则打印对话框关闭,然后适合打印的视图立即关闭。
凡夕
扑北爱
单击提交或取消按钮后,它将关闭窗口
渴翅吮斡撤
锹缄
靛取糕奖穿
这对我来说是完美的。 希望能帮助到你
告耸
玩翁文醚碱
素汞读
值得注意的是,以上内容放在我的“可打印页面”上(您可以将其称为我从另一个页面链接到的“ printable.html \”(如果需要,可以将其称为linkpage.html):
对于只寻找解决方案的复制粘贴开发人员,以下是上述功能的“触发器”(同一页):
所以会 单击打印时打开一个新窗口 页面加载后触发(浏览器)打印对话框 打印(或取消)后关闭窗口。 希望你玩得开心!
芜任亮蜡
肉簧咸缮