2012-03-29 89 views
3

我已經定義了onbeforeprint,並且我修改了我的html代碼,現在一旦我完成打印後,選擇了打印按鈕,我希望打開onafterprint但它沒有。Window.onbeforeprint和Window.onafterprint同時被解僱

而是當我按下Control + Print按鈕時,onbeforeprint先被觸發,然後顯示onafterprint事件和打印對話框。

有沒有什麼辦法可以在點擊「打印」按鈕後以某種方式對我的html進行更改?

正在使用IE瀏覽器-9和代碼如下 代碼

<script type="text/javascript"> 
    window.onbeforeprint = function() { 
     alert('Hello'); 
    } 
    window.onafterprint = function() { 
     alert('Bye'); 
    } 
</script> 

感謝&問候, 弗朗西斯P.

+0

您正在使用哪種瀏覽器?你可以發佈一些你的javasript代碼嗎? – antonjs 2012-03-29 06:54:14

+0

使用IE 9 – user581157 2012-03-29 07:23:53

回答

2

onbeforeprint發射對話框出現之前,允許一個改變HTML等等。

onafterprint被解僱只是出現對話框之前。甚至無法知道文檔是否實際打印或用戶是否取消了它。不用說什麼時候打印完成(如果開始的話)。

再次:沒有事件可用於跟蹤打印對話框中發生的任何事情,即回答您的問題是。此外,我希望你的需求永遠不會實現,因爲這可以讓用戶感到挫敗。他/她要求打印一份文件,但有一些不同。

+2

使用代碼和即時編輯我的文章我不得不不同意你的最新評論。有時頁面上沒有用於打印的無用html。例如,假設我有一個充滿表格的頁面,一個側面導航菜單和一些按鈕。顯然,當用戶打印這個頁面時,他們試圖打印出這些表格。更進一步的說,你有一些DOM元素需要在打印過程中用JavaScript來控制。如果用戶不需要他們全部,他們可以選擇他們想要打印的頁面,但是這樣可以避免他們通過點擊按鈕或與其相關的任何內容顯示每個元素。 – Justin 2016-07-29 20:27:28

-1

是的,你可以,沒有趕上。我已經在一個專業應用程序中實現了。 打印瀏覽器,Firefox,全部

window.onload = PrintMe; 

function PrintMe() { 
    window.print(); 
    setTimeout(function() { 
    alert("OK"); 
// Here you code, for example __doPostBack('ReturnPrint', ''); 
    }, 2000); 
}