我有一个在 JQuery 模态框中弹出的文档。该文档末尾有一个打印按钮,只需打印弹出框中的文档。
我正在寻找一种解决方案,可以通过按 Ctrl+P 打印弹出框。现在 Ctrl+p 打印所有页面,包括背景...我只是希望找到一个解决方案,帮助我仅在弹出窗口中打印文档。
我的 JQuery 模态框位于 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 但它仍然打印整个页面时,该函数肯定被调用。我希望它只打印模态框。奇怪的是,当我按下模态框内的打印按钮(它使用相同的功能)时,它会正确打印。
Thanks,
第一次编辑:-
现在部分工作。
当我将 PrintAssessment() 的函数更改为以下内容时,它可以工作:-
function printAssessment() {
window.frames["lightboxFrame"].focus();
window.frames["lightboxFrame"].print();
}
但是,奇怪的是,当我第一次单击 Ctrl+P 时,它才会打印。当我尝试再次打印时,它一直给我这个错误:-
Uncaught TypeError: Cannot call method 'print' of undefined
or
Uncaught TypeError: Cannot call method 'focus' of undefined
Thanks.