0

我试图通过使用这个搜索和谷歌找到一个解决方案,但我找不到任何东西,我希望你能帮助我。

我正在使用 printThis 插件仅打印部分页面(在我的情况下为 DIV=modal 对话框)。插件页面:https ://github.com/jasonday/printThis

在调用 print-dialog 并打印文档后,我想自动关闭我的模态对话框,但因此我需要一个回调函数。

这就是用于打印的代码:

$(".printable").printThis({
             debug: false,
             printContainer: false,
             pageTitle: $("#info-modal .short-info .panel-headline-wrapper h1").html(),
             formValues: true,
             printDelay: 0
            })

现在我想我从jquery中添加了一个“done()”函数来“捕获”回调......我尝试了以下方法,但它没有用:

$(".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)

非常感谢您。

干杯,马可

4

1 回答 1

2

我是 printThis 插件的作者。

由于打印对话框的性质,您当前的设置将不起作用,因为没有与打印对话框相关的事件(当它被触发、完成等时)。此外,$.done是延迟对象或承诺的一部分。在这种情况下它不会起作用。

我尚未测试拉取请求,但它“可能”工作,因为浏览器可能会在打印对话框打开时停止并堆叠 javascript 执行。但是,我不知道这如何跨浏览器工作。

如果您查看拉取请求,提交者会在标题中添加说明以及其他说明。您实际上是在配置对象中放置了一个函数。

还有另一种选择。您可以在用于触发打印功能的同一单击事件上简单地关闭模式。这种方法会更简单,直到我找到一种有效合并回调的方法。

于 2014-05-16T15:06:07.823 回答