【发布时间】:2018-07-09 12:46:28
【问题描述】:
您好,我在 Safari 中遇到了一个奇怪的问题。我有一个按钮,单击它会打印 html 的内容。我的问题是,第一次调用window.print() 时效果很好,但是,在第二次单击时,它会显示一个弹出窗口,说明:
'此网页正在尝试打印。你想打印这个网页吗?'
如果我在此对话框中单击 打印,则不会发生任何事情。任何想法为什么会发生这种情况?提前谢谢!
Javascript -
$scope.print = function() {
var contents = document.getElementById("print-section").outerHTML;
var frame1 = document.createElement('iframe');
frame1.name = "frame3";
frame1.style.position = "absolute";
frame1.style.top = "-1000000px";
document.body.appendChild(frame1);
var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument;
frameDoc.document.open();
frameDoc.document.write('<html><head>'); // add some libraries for the new document
frameDoc.document.write('</head><body>');
frameDoc.document.write(contents);
frameDoc.document.write('</body></html>');
frameDoc.document.close();
setTimeout(function () {
window.frames["frame3"].focus();
window.frames["frame3"].print();
document.body.removeChild(frame1);
}, 500);
return false;
};
HTML-
<div id="print-section">
<div>Section to print<>
</div>
【问题讨论】:
-
同样的问题,有什么想法吗?
标签: javascript html printing safari