Window.onbeforeprint и Window.onafterprint запускаются одновременно - PullRequest
3 голосов
/ 29 марта 2012

Я определил onbeforeprint, и я изменяю свой HTML-код, и теперь, когда я заканчиваю печать, находящуюся на кнопке печати, я хочу, чтобы onafterprint запускался, но это не так.

Вместо этого, когда я нажимаю Control+ Кнопка «Печать»: сначала вызывается onbeforeprint, а затем - событие onafterprint, а затем отображается диалоговое окно печати. ​​

Можно ли каким-либо образом внести изменения в мой html после нажатия кнопки «Печать»?

Я использую браузер IE-9 и код выглядит следующим образом Код

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

С уважением, Фрэнсис П.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

onbeforeprint срабатывает до появления диалогового окна и позволяет изменять html и т. Д.

onafterprint запускается только до появления диалога. Невозможно даже узнать, был ли документ фактически напечатан или пользователь отменил его. Само собой разумеется, когда закончится печать (если вообще началась).

Опять же: нет доступных событий для отслеживания чего-либо, что произошло в диалоговом окне печати, то есть ответ на ваш вопрос нет .

Более того, я надеюсь, что ваши потребности никогда не будут реализованы, потому что это позволяет расстроить пользователя. Он / она просит напечатать один документ, но получил что-то другое.

0 голосов
/ 21 мая 2014

Да, вы не можете поймать.Я таким образом реализовал в профессиональном приложении.Печать в Проводнике, Firefox, все

window.onload = PrintMe;

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