Window.print() из поднабора Chrome - закрыть, затем перерывы
Когда в нашем веб-браузере запущен подзаголовок Chrome, либо с помощью window.open()
, либо нажав на ссылку с помощью target="_blank"
, а затем в этом подполе body onload="window.print()"
, чтобы автоматически запустить диалог печати и распечатать предварительный просмотр, затем пользователь ЗАКРЫВАЕТ печать/подзаголовок вместо нажатия отменить, родительское окно полностью закрывается. В частности:
- Никакие события javascript не срабатывают
- Никакие ссылки не доступны для просмотра.
- Нажатие F5 показывает небольшой счетчик на вкладке, но страница никогда не перезагружается.
- Родительское окно действительно мертво - все, что вы можете сделать, это закрыть его.
Если вы нажмете "Отмена" в подзаголовке (где начинается предварительный просмотр печати через window.print()
), все в порядке. Но если пользователь закрывает окно, все сумасшествие происходит.
Это известная ошибка в Chrome:
Кто-нибудь знает об обходном пути для этого?
Ответы
Ответ 1
Вместо использования window.print()
просто верните свой контент в новое окно и затем вызовите функцию печати, как указано ниже, для печати содержимого.
Ниже приведен вызов функции, в котором мы передали внутренний элемент html через его id в новое окно.
PrintContent(document.getElementById('div-content-id').innerHTML);
function PrintContent(printableContent) {
var printWindow = window.open("", "Print_Content", 'scrollbars=1,width=900,height=900top=' + (screen.height - 700) / 2 + ',left=' + (screen.width - 700) / 2);
printWindow.document.write(printableContent);
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
return false;
}
У меня также была такая же проблема, она работает для меня.