Вы не можете перехватить команду печати в браузере, но вы можете перехватить сочетания клавиш (хотя я бы не рекомендовал это), чтобы при печати пользователем с использованием ctrl/cmd + p
он перенаправлялся в PDF (или делал что-то еще)еще).Хотя это удобное поле для удобства использования, вам, вероятно, следует просто создать большую ссылку с надписью «Версия для печати» и связать ее с PDF (или версией страницы, использующей удобный для печати CSS).
ДругаяХороший вариант - просто определить некоторые правила для типа носителя print
в вашем CSS-файле, тогда браузеры будут применять их, когда пользователь печатает, без каких-либо хаков или JavaScript.
Но так как вы спросили меня,создал небольшой сценарий перехвата ярлыка для команды печати.Это немного сложно из-за командной клавиши Mac, но что-то вроде:
var cmd = false;
$(document).on('keydown', function(e) {
if(detectMacCommand(e.which)) {
cmd = true;
return;
}
// now detect print (ctr/cmd + p)
if ( e.which == 80 && ( e.ctrl || cmd ) ) {
e.preventDefault();
alert('redirect to PDF');
}
}).on('keyup', function(e) {
if(detectMacCommand(e.which)) {
cmd = false;
return;
}
});
function detectMacCommand(key) {
return ( $.browser.mozilla && key == 224 ||
$.browser.opera && key == 17 ||
$.browser.webkit && ( key == 91 || key == 93 ));
}
Это круто, но не используйте его:)