Как показать диалоговое окно печати из JavaScript, не получая предупреждений «Страница не отвечает»? - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть страница с простым «печатным» изображением / ссылкой, которая выполняет простой обработчик javascript onclick.Я обнаружил, что Chrome будет жаловаться на страницу с предупреждением «Не отвечает на страницу», когда я слишком долго просматриваю диалоговое окно печати.Я не вижу такого поведения в других браузерах.

HTML выглядит следующим образом:

<a onclick="if(window.print) window.print(); return false;">
  <img src="print-button.png" alt="[Print]" />
</a>

На странице нет других активных сценариев, поэтому я предполагаю, что это onclick проблема в обработчикеМое предположение заключается в том, что Chrome делает что-то подобное за кулисами:

  1. Принимать событие нажатия от ОС
  2. См. onclick существует обработчик
  3. Запуск секундомера
  4. Вызов onclick обработчик
  5. onclick вызов обработчика window.print() (какие блоки, ожидающие ввода пользователя)
  6. [проходит время]
  7. Секундомер указывает, что прошло слишком много времени
  8. Chrome выдает предупреждение пользователю

Я бы посчитал это ошибкой в ​​Chrome, если это правда, поскольку window.printзвонок не должен быть «приурочен».То есть это блокирующее интерактивное действие пользователя, и пользователю разрешено отнимать столько времени, сколько ему нужно.

Я пытался обмануть, выполнив следующее:

<a onclick="if(window.print) setTimeout(function() { window.print(); }, 0); return false;">
  <img src="print-button.png" alt="[Print]" />
</a>

..... но это ничего не меняет - Chrome все еще жалуется на продолжительный скрипт.

Использую ли я неправильную технику для запуска диалога печати?Или это ошибка в Chrome?

Я работаю v72.0.3626.119 на 64-битном Mac, и я не могу воспроизвести это , пока у меня есть клиент, работающий с той же версией в 64-немного Windows, и она сообщает об этой проблеме.

1 Ответ

0 голосов
/ 01 марта 2019

Это известная ошибка в Chrome с 27 февраля 2018 года / Chrome 64

Исправлено исправление для Chrome 73

https://bugs.chromium.org/p/chromium/issues/detail?id=816869

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...