Javascript打印div无法在safari网络浏览器中使用

时间:2018-04-27 05:08:35

标签: javascript jquery safari

这是我使用的代码,它在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 :(得分:1)

在进行asnyc调用之前,Safari阻止调用window.open()(异步调用)调用window.open,然后设置位置(当promise被解析时):

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

service.getUrl().then(function(url) {
     newWindow.location = url;
});