Атрибут onafterprint тега <body>


Описание

Атрибут onafterprint позволяет задать JavaScript-код, который будет выполнен после того, как пользователь напечатает документ или запустит предварительный просмотр печати. Это часть системы событий печати в браузере.

Пример использования:
<body onafterprint="console.log('Печать завершена')"> <h1>Мой документ</h1> <p>Содержимое страницы...</p> </body>

События печати:

Событие Когда срабатывает
onbeforeprint Перед открытием диалога печати
onafterprint После закрытия диалога печати или завершения печати

Рекомендации по использованию:

  • Используйте для восстановления состояния страницы после печати
  • Можно применять для аналитики печати документов
  • Полезен для скрытия/показа элементов после печати
  • Сочетайте с onbeforeprint для полного контроля

Практический пример:

<body onafterprint="document.getElementById('print-message').style.display='none'"> <div id="print-message" style="position: fixed; top: 0; background: yellow; padding: 10px;"> Идет печать документа... </div> <h1>Важный документ</h1> <p>Основное содержимое...</p> <script> window.onbeforeprint = function() { document.getElementById('print-message').style.display = 'block'; }; </script> </body>

Важные замечания:

  • Время срабатывания может отличаться в разных браузерах
  • Некоторые браузеры могут не поддерживать это событие
  • Не гарантируется точное время выполнения (особенно для сетевых принтеров)
  • Для сложной логики лучше использовать window.matchMedia('print')

Совместимость с браузерами:

<script> // Альтернативный подход для лучшей совместимости window.matchMedia('print').addListener(function(mql) { if (!mql.matches) { console.log('Печать завершена'); // Действия после печати } }); </script>

Примечание: Хотя onafterprint полезен для базовых сценариев, для сложных задач печати рекомендуется использовать CSS @media print и JavaScript-полифиллы для полной кросс-браузерной поддержки.