window.print()在IE 11中不起作用

时间:2017-03-20 15:19:17

标签: javascript html angularjs internet-explorer printing-web-page

我有一个角度js应用程序,对于打印功能,我使用window.open方法打开一个html页面。

 public openNewWindow(html: string, title: string) {
    var popupWin = window.open('', '_blank', 'scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no, height=500, weidth=900');
    popupWin.window.focus();
    popupWin.document.write(html);
    popupWin.document.title = title;
};

我在html页面上有一个按钮来打印。我使用onclick事件来调用print。

 <button class="print-btn" onclick="window.print();" id="view_print"> Print</button>

此代码在Chrome中完美有效,但在IE 11中无效。如果我将默认值从Edge更改为IE 10,则打印效果正常并打开打印对话框窗口。它肯定比Chrome慢。

我尝试添加如下的模拟(对于IE 10和8等),但它仍然无效。

我在这里错过了什么吗?我发现很多文章,但我无法修复它。

2 个答案:

答案 0 :(得分:1)

具有大小和位置参数的脚本化弹出窗口受弹出窗口阻止程序和IE安全区域限制的约束。试试

window.open('','_ blank');

使用文件&gt;属性菜单确定网页/域映射到的IE安全区域。

请参阅任何维基百科文章侧栏,了解使用媒体查询以打印机友好格式格式化当前网页的模板方法。

答案 1 :(得分:0)

我也看到了这一点,但有以下信息:

    Chrome下的
  • :页面底部的地址是(正确的)http://server/path/file.php?querystring
  • IE11下的
  • :页面底部的地址为http://server/path/{8 digit dynamic alphanumeric string}.htm

屏幕渲染正确,但打印结果是404错误。

目前的解决方法是使用Chrome。