2010-05-11 15 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