2012-03-27 143 views
2

我知道,直到最近onafterprint只是原生的IE瀏覽器。最近HTML5已將其添加到其事件列表中。我只在Firefox中成功使用它,但無法在Chrome或Safari中使用它。在Chrome和Safari中使用onafterprint

<body onafterprint="printIt()"> 

該函數的腳本是這樣的:

其時,用在身上它似乎在Firefox中唯一的功能

$(document).ready(function() { 
$('.printMe').click(function() { 
    window.print(); 
    return false; 
}); 
}); 

function printIt() 
{ 
$('#confirmPrint').show(); 
}; 

通過點擊.printMe按鈕,它會打開打印窗口。單擊打印或取消將在#confirmPrint中顯示消息。我並不擔心能否分辨是否點擊取消或打印。我只關心它在Chrome和Safari中的運作。任何幫助深表感謝。我也使用jQuery,如果這還不是很明顯。

回答

0

經過一番實驗,我想我可以放心地說onafterprint是不值得考慮的。

  • 火狐激發它,即使用戶在打印對話框
  • IE8顯然激發點擊它Cancel而不是OK甚至之前打印對話框出現
  • Chrome不火它在所有

取而代之的是,在撥打print()後直接做任何你想做的事,即

$(document).ready(function() { 
$('.printMe').click(function() { 
    window.print(); 
    printIt(); 
    return false; 
    }); 
}); 

function printIt() 
{ 
$('#confirmPrint').show(); 
}; 
+1

這似乎不工作了。在chrome中,如果我在window.print()之後直接使用了window.close(),那麼在用戶有機會與打印對話框交互之前,窗口會關閉。現在chrome需要''setTimeout(function(){window.close()},0)'來允許打印對話框在關閉窗口之前完成。 – MushinNoShin 2013-11-24 15:09:35