0

我已经申请打开弹出窗口来打印页面。Javascript window.open firefox/chrome问题

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

请指教。

+0

,你将在同一个域中进行打印网址吗? – Kinlan 2010-04-13 09:39:39

+0

是的,Chrome中的相同域名 – Adelave 2010-04-13 10:05:38

回答

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(); 
} 
0

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

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

(未测试)

+0

至少不能用。 – Kinlan 2010-04-13 09:39:16

+0

它不能在FF3 + Chrome – Adelave 2010-04-13 10:10:16

0

我建议调用的页面window.print()被装入弹出,而不是在揭幕战。

+0

不能工作,因为这是全局脚本,它在所有页面上共享。如果我这样做,我需要在所有页面上复制代码。 – Adelave 2010-04-13 10:05:21