Jquery plugins 回调jquery插件打印此

Jquery plugins 回调jquery插件打印此,jquery-plugins,jquery-callback,printthis,Jquery Plugins,Jquery Callback,Printthis,我试图通过使用这个搜索和谷歌找到一个解决方案,但我找不到任何东西,我希望你能帮助我 我使用printThis插件只打印页面的一部分(在我的例子中是DIV=modal对话框)。插件页面: 调用打印对话框并打印文档后,我希望自动关闭模式对话框,但因此需要一个回调函数 这就是用于打印的代码: $(".printable").printThis({ debug: false, printContainer: false, pa

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

我使用printThis插件只打印页面的一部分(在我的例子中是DIV=modal对话框)。插件页面:

调用打印对话框并打印文档后,我希望自动关闭模式对话框,但因此需要一个回调函数

这就是用于打印的代码:

$(".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
        });
我在pull请求中发现了一些东西: 但我不知道怎么用

我使用的是printThis(v1.4)和jquery(v1.11.0)的最新版本

多谢各位

干杯,
Marco

我是这个插件的作者

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

我还没有测试pull请求,但它“可能”会工作,因为当打印对话框打开时,浏览器可能会停止并堆叠javascript执行。然而,我不知道这是如何跨浏览器工作的

如果查看pull请求,提交者会在标题中添加指令和其他指令。实际上,您在config对象中放置了一个函数


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

嘿,杰森,非常感谢你的快速回答。我查看了commit注释,并尝试使用一个函数(“callback:testfunction”)…但不起作用。甚至内联也不起作用,比如:$(“.printable”).printThis({callback:function(){alert(“打印完成了…”)});。。。(使用firefox 29.0.1进行测试)。。。因此,我采用您提到的解决方案,以相同的方式单击打印来关闭模态对话框:-)谢谢。如果您有其他解决方案,我将很高兴得到一个信息:-)非常感谢。很抱歉Jason,我忘了从提交中插入更改(如果(typeof opt.callback=='function')opt.callback.call();)。。。现在它工作了!!!(在firefox中)再次感谢您。干杯,marcoJason,我正在使用printThis打印需要跟踪的内容。如果我调用printThis并打开浏览器对话框,我需要知道是否在该对话框中单击了“打印”或“取消”。还有什么方法可以跟踪这一事件吗?@DougWolfgram-我不相信有任何方法可以跟踪这一事件,因为在我所有的测试/调查中,浏览器在这一点上是盲目的/停止的。我确实在afterprint()上发现了一个IE事件,但它没有用——当对话框打开时触发。OK。谢谢我们选择了一种解决方案,在弹出打印对话框之前提示用户,一旦用户进入,就会将其标记为打印。:)