Div Javascript печати не работает в веб-браузере Safari - PullRequest
0 голосов
/ 27 апреля 2018

Это код, который я использовал, и он отлично работает в Firefox и Chrome, к сожалению, Safari не поддерживает это. Диалоговое окно закрывается сразу после появления. Любое решение этой проблемы?

 var mywindow = window.open('', 'PRINT', 'height=400,width=600');
 mywindow.document.write(
   '<html style="background-color: white;"><head><title></title>');
 mywindow.document.write(
   '<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>css/queue.css">'
 );
 mywindow.document.write(
   '</head><body style="background-color: white !important;padding-top:15px;margin:2">'
 );
 mywindow.document.write(document.getElementById('forprint').innerHTML);
 mywindow.document.write('</body></html>');
 mywindow.document.close(); // necessary for IE >= 10
 mywindow.focus(); // necessary for IE >= 10*/
 mywindow.print();
 mywindow.close();
 return true;

1 Ответ

0 голосов
/ 27 апреля 2018

Safari блокирует вызовы window.open () (асинхронный вызов). Сначала вызовите window.open перед выполнением асинхронного вызова, а затем укажите местоположение (когда обещание будет выполнено):

var newWindow = window.open();
var url = "[YOURURL]";

service.getUrl().then(function(url) {
     newWindow.location = url;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...