我有一个在JQuery Modal Box中弹出的文档。文档末尾有一个打印按钮,只是在弹出框中打印文档。
我希望找到一个解决方案,我可以通过按Ctrl + P打印弹出框。现在Ctrl + p打印所有页面,包括背景...我只是希望找到一个解决方案,帮助我在弹出窗口中打印文档。
我的JQuery Modal Box在iFrame中,以下列方式显示: -
<div id="frameContainer">
<iframe id="lightboxFrame" width="950px" scrolling="auto" height="500px">
<!DOCTYPE html>
<html>
<head>
<body> (Whole Document in a Div) </body>
...
这是弹出HTML中的DIV,用于打印弹出文档。
<div id="edit-actions" class="form-actions form-wrapper">
<input id="print-submit" class="form-submit" value="Print this Survey" name="print" onclick="printAssessment()" type="button" />
</div>
这就是我所做的: -
$(document).keydown(function(event) {
if (event.ctrlKey==true && (event.which == '80')) { //cntrl + p
event.preventDefault();
printAssessment();
}
});
function printAssessment() {
//alert("Print the little page");
window.print();
}
当我按下Ctrl + P时,该功能肯定被调用,但它仍然打印整个页面。我希望它只打印Modal Box。奇怪的是,当我按下使用相同功能的模态盒内的打印按钮时,它会正确打印。
谢谢,
第一次编辑: -
现在部分工作。
当我将PrintAssessment()的功能更改为以下内容时,它可以工作: -
function printAssessment() {
window.frames["lightboxFrame"].focus();
window.frames["lightboxFrame"].print();
}
但是,奇怪的是,当我第一次单击Ctrl + P时它会打印出来。当我再次尝试打印时,它一直给我这个错误: -
Uncaught TypeError: Cannot call method 'print' of undefined
或
Uncaught TypeError: Cannot call method 'focus' of undefined
感谢。
答案 0 :(得分:1)
而不是:
window.print();
您可以打印iframe的内容,如下所示:
$('#lightboxFrame')[0].contentWindow.print();
将代码放在你的函数printAssessment()
中