Прежде всего, ваш код должен работать, но (кстати) лучшая версия:
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onafterprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
Если вы создаете функцию, которая должна вызывать после , печать завершена.
Это событие (window.onafterprint) поддерживается всеми браузерами, кроме сафари (EDIT: yep, из MDN )
По какой-то причине этот код не работает с 64-битным Firefox 66.0.3 (в моем случае), но работает безупречно с IE11 и Chrome 73.
Ну, на самом деле это работает , если вы отменяете печать по запросу, но не если вы действительно печатаете.
Обходной путь - использовать другое событие, onbeforeprint
, которое изменяет страницу перед печатью (идея состоит в том, чтобы удалить такие вещи, как реклама, перед печатью, а затем использовать onafterprint для восстановления страницы).
Когда я пытался, кажется, что печатается первая страница, а не вторая, так что это событие также прерывается.
Кажется, этот способ работает.
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onbeforeprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>