2010-05-11 34 views
0

我用这个漂亮的打印脚本:应放慢mywindow.print()

<script type="text/javascript"> 
    function PrintElem(elem) 
    { 
     Popup($(elem).text()); 
    } 
    function Popup(data) 
    { 
     var mywindow = window.open('', 'my div', 'height=400,width=600'); 
     mywindow.document.write('<html><head><title>my div</title>'); 
     /*optional stylesheet*/ //mywindow.document.write('<link rel="stylesheet" href="main.css" type="text/css" />'); 
     mywindow.document.write('</head><body >'); 
     mywindow.document.write(data); 
     mywindow.document.write('</body></html>'); 
     mywindow.document.close(); 
     mywindow.print(); 
     return true; 
    } 
</script> 
</head> 
<body> 

它正常工作,除了两件事情:

之前在页面完全加载所以
  1. mywindow.print()被触发您无法在窗口中看到要打印的材质(如果您选择“打印”,它可以正确打印)。
  2. 打印对话框在阻止内容的窗口上方打开(假定#1是一个简单的修复方法)。它如何定位?

谢谢 - TY

回答

1

尝试

mywindow.document.body.onload = function(){ 
    mywindow.print(); 
}; 

setTimeout(function(){ 
    mywindow.print(); 
}, 100); 

希望这有助于!

+0

感谢“jimbojw”和“pranay” - 你的摇滚! setTimeout的工作就像一个魅力。我对我的应用程序进行了一些调整,所有浏览器中的所有内容都很流畅。使用onload无法打开到打印对话框 - 不知道为什么,因为代码应该工作。我也将尝试jQuery,但现在它工作得很好。非常感谢! – TraderY 2010-05-11 19:56:17