我试图通过使用此搜索和谷歌找到解决方案,但我找不到任何东西,我希望你能帮助我。
我使用printThis插件仅打印部分页面(在我的例子中是DIV =模态对话框)。插件页面:https://github.com/jasonday/printThis
调用打印对话框后我打印文档我想自动关闭模态对话框,但是我需要一个回调函数。
这就是用于打印的代码:
$(".printable").printThis({
debug: false,
printContainer: false,
pageTitle: $("#info-modal .short-info .panel-headline-wrapper h1").html(),
formValues: true,
printDelay: 0
})
现在我想我添加一个"完成()"来自jquery的函数"捕获"回调...... 我尝试了以下方法,但它没有工作:
$(".printable").printThis({
debug: false,
printContainer: false,
pageTitle: $("#info-modal .short-info .panel-headline-wrapper h1").html(),
formValues: true,
printDelay: 0
}).done(function(n){
//close modal dialog
});
我在拉取请求中找到了一些内容:https://github.com/jasonday/printThis/pull/28 但我不知道如何使用它。
我使用的是最新版本的printThis(v 1.4)和jquery(v 1.11.0)
非常感谢你。欢呼声, 马可
答案 0 :(得分:2)
我是printThis插件的作者。
由于打印对话框的性质,您当前的设置将不起作用,因为没有事件与打印对话框相关联(当它被触发,完成等)。此外,$.done
是延迟对象或承诺的一部分。它不会在这种情况下起作用。
我还没有测试过拉取请求,但它可能会起作用,因为浏览器可能会在打印对话框打开时暂停并堆叠javascript执行。但是,我不知道这在浏览器中是如何工作的。
如果查看拉取请求,提交者会在标题中添加其他说明。你基本上把一个函数放在配置对象中。
还有另一种选择。您可以在用于触发打印功能的相同单击事件上关闭模式。这种方法会更简单,直到我找到一种有效合并回调的方法。