Javascript window.open firefox / chrome问题

时间:2010-04-13 08:03:05

标签: javascript firefox google-chrome internet-explorer window.open

我的应用程序打开弹出窗口打印页面。

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,因此在屏幕仍在加载时首先显示打印对话框。我需要关闭打印对话框才能正确渲染页面然后手动打印。

请告知。

3 个答案:

答案 0 :(得分:0)

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

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

(未经测试)

答案 1 :(得分:0)

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

答案 2 :(得分: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();
}