【问题标题】:window.print() does not work in IE 11window.print() 在 IE 11 中不起作用
【发布时间】:2017-08-11 22:54:16
【问题描述】:

我有一个 Angular 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 等),但它仍然无法正常工作。

我在这里遗漏了什么吗?我找到了很多文章,但我一直无法修复它。

【问题讨论】:

  • 什么不起作用?
  • 应该来选择打印机的打印对话窗口没有出现。它在 chrome 上表现良好。
  • 如果你把type="button"加到按钮上,会有什么不同
  • 不,它没有。
  • 并且控制台没有报错,页面上也没有id为“print”的项目?

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


【解决方案1】:

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

window.open('', '_blank');

使用文件>属性菜单来确定网页/域映射到哪个 IE 安全区域。

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

【讨论】:

    【解决方案2】:

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

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

    屏幕渲染是正确的,但是打印出来的是404错误。

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

    【讨论】:

      【解决方案3】:

      如果您有新系统,但在尝试了所有方法后仍然无法解决,

      先尝试设置打印机。

      设置默认打印机,你的 IE 应该开始响应

      "Ctrl" + "P" 
      

      window.print()
      

      【讨论】:

        猜你喜欢
        • 2011-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-15
        • 2015-05-06
        • 2016-10-13
        • 2018-03-29
        • 1970-01-01
        相关资源
        最近更新 更多