0

我已经申请打开弹出窗口来打印页面。

function printHTML(urlPath) {
    var printPopUp = window.open(urlPath,null,"height=600,width=777,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes");
    printPopUp.print();
}

该脚本在 IE 中运行良好,但在 firefox/chrome 中运行良好。print()功能重叠window.open,因此在屏幕仍在加载时首先显示打印对话框。我需要关闭打印对话框才能正确呈现页面,然后手动打印。

请指教。

4

3 回答 3

0

加载页面后运行打印,例如

printPopUp.onload = function() { printPopUp.print() }

(未测试)

于 2010-04-13T09:26:45.703 回答
0

我建议调用window.print()正在加载到弹出窗口而不是打开器中的页面。

于 2010-04-13T09:34:06.777 回答
0

如您的评论中所示,要打印的网址位于同一域中。您无法访问其他窗口的内容,因此您必须在弹出的窗口上设置一些代码,该代码将调用开启程序以告知它已打开。

popup.html

<script>
function onLoad() {
  if(window.opener && window.opener.popupLoaded) {
    window.opener.popupLoaded();  
  }
}
</script>
<html onload="onLoad();">

main.html

function popupLoaded() {
  popup.print();
}
于 2010-04-13T11:10:02.883 回答