有什麼方法可以捕獲瀏覽器的打印事件並取消打印對話框的外觀?避免使用javascript瀏覽器打印對話框
例子:
User clicks in "File" -> "Print".
Before the print dialog appears, show a confirm() like 'It is possible that not all data is printed, continue anyway? <accept> <cancel>
User clicks <accept> -> Print dialog appears
User clicks <cancel> -> Print dialog doesn't appear
現在我有這樣的:
var beforePrint = function(ev) {
if (!messageShown) {
var result = confirm('Are you sure?');
if (!result) {
// TODO: Cancel
}
}
};
var afterPrint = function(ev) {
// TODO
};
if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
沒有現代瀏覽器將允許您*防止*打印功能。正確如此。 – CodingIntrigue
@Rraham:他們可能會提供某種類似OP所需的確認框,例如'beforeunload'事件會;但你是對的 - 他們不會爲'打印'。 – Bergi
如果您有佈局問題,請嘗試專門的打印樣式表,它幾乎隱藏了除您的數據之外的所有內容。 – Gant