У меня есть веб-страница с кнопкой «Печать». Эффект, который я хочу, заключается в том, что после того, как диалог печати будет завершен посредством печати или отмены, страница благодарит пользователя за использование нашего сайта.Javascript после window.print() иногда выполняется перед диалогом печати, иногда после
Функция печати выглядит примерно так:
function printThenThank() {
window.print();
$('.thankYou').removeClass('hidden');
// alert('debug message');
}
Проблема я нахожу в том, что когда-то «скрытый» спасибо сообщение появляется в распечатке, а иногда нет. Я запускаю его несколько раз, иногда с сообщением об отладочном сообщении, предшествующим модальному типу печати, и иногда предупреждает только после отмены запроса на печать.
Я изначально считал, что window.print()
является синхронным вызовом, но, похоже, он больше похож на асинхронный триггер для процесса с модальным диалогом.
Есть ли какой-либо надежный кросс-платформенный способ обеспечения того, что переписывание содержимого, которое я хочу выполнить, не инициируется до тех пор, пока пользователь не захочет распечатать или отменить диалог window.print()?
почему бы не использовать SetTimeout для этого дело? – Dvir
Мне не нравится setTimeout для условий гонки. Если я установил слишком короткий, он может перерисовать элементы страницы перед отображением для печати. Если слишком долго, моя страница, похоже, зависает для быстрого пользователя, который отменил сразу. – phatfingers