Метод печати не работает в окне при использовании ссылки onclick Safari. Какая альтернатива для печати веб-страницы в сафари через код onclick, который помещается на кнопку? Еще одно странное поведение заключается в том, что при попытке закрыть окно появляется диалоговое окно печати, соответствующее браузеру.
Window.print(); не работает в Safari
Ответ 1
У вас нет проблем с window.print()
с Safari. Извините, я не мог попробовать ОС Windows, но для меня работает код MacOS:
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">Click me</button>
<a href="#" onclick="myFunction()">Click link</a>
<script>
function myFunction() {
window.print();
}
</script>
</body>
</html>
Ответ 2
Я столкнулся с аналогичной проблемой с браузером Safari (а не с другими). В моем случае прерывание всех вызовов API, которые в настоящее время выполняются, показывается в собственном диалоговом окне печати.
Я предполагаю, почему ваш диалог появился при попытке закрыть вкладку/страницу, так что все сетевые запросы отменены.
Вот пример того, как создать пул ajax-запросов (при использовании jQuery): Остановить все активные запросы ajax в jQuery
Кроме того, чтобы заставить его работать последовательно, мне пришлось обернуть функцию $.xhrPool.abortAll
за короткий промежуток времени (100 мс).
Моя функция обработчика кликов (упрощенная) выглядит примерно так:
function myFunction() {
window.print();
window.setTimeout(function () {
$.xhrPool.abortAll()
}, 100);
}