0

我有一个使用 jqprint 的 javascript 打印功能(尽管我对代码做了一些小的调整)。

此打印功能在 IE8 和 Chrome 上运行没有问题。虽然在 IE9 上,它没有显示 JS 错误,并且浏览器打印对话框按预期显示,但是一旦我单击打印,什么也没有发生。最终,我计算机上的所有应用程序都开始滞后,但我必须重新启动。

如果我打开开发工具包 (F12) 并将文档模式设置为 IE8 标准,它在 IE9 中可以正常打印。

这是怎么回事?我真的很困惑...

编辑:

我的电脑没有连接到打印机,所以我使用内置的“Microsoft XPS Document Writer”进行测试。我已经在 IE8 和 Chrome 中的实际打印机上测试了代码,它确实有效。

更新

由于某种原因今天停止工作,有人有什么想法吗?

4

1 回答 1

0

我不知道为什么,但我得到了它的工作。

当它调用 print 函数时,它是在它刚刚创建的 jquery 对象(iframe)上调用它。我更改了 jqprint 代码,因此它每次都重新抓取对象。

原始jqprint代码:

 $iframe[0].contentWindow.document.close();
 ....

修改jqprint代码:

$('iframe')[0].contentWindow.document.close();
$('iframe')[0].contentWindow.focus();
$('iframe')[0].contentWindow.print();
$('iframe')[0].contentWindow.close();
于 2013-04-15T20:54:06.967 回答