IE11 Windows 7 kb4021558 之后的打印问题

IE11 Windows 7 Print issue after kb4021558

对于这个稍微含糊的问题表示歉意,但我正在拔头发。自这次更新以来,我们接到了很多关于从我们的网络应用程序打印的电话。我们的网络应用程序使用 iframe,我们使用 css @media print 隐藏除此 iframe 之外的所有内容以用于打印目的。由于更新,用户收到错误 404--Not Found 而不是实际页面。从网络跟踪看来,IE 在本地目录中创建了一个临时 .htm 文件,如 D3CD911.htm,然后下载 css/js 资源,最后调用 /D3CD911.htm。这是对 www.mywebsite.co.uk/D3CD911.htm 的调用。这显然在网站上不存在,所以返回 404。 我努力寻找问题的模式,它似乎没有影响其他 public 站点。我认为问题出在 window.print() 方法上。我可以在 https://www.primefaces.org/showcase/ui/misc/printer.xhtml 上半复制它。如果您单击打印按钮,您将收到错误消息。虽然这是使用 jqprint javascript 函数,但如果您随后使用浏览器打印按钮,它也会失败。

任何指导将不胜感激。

andyfinch 的解决方法也适用于我们。谢谢安迪!

MS 已通过 "WON'T FIX" (6/15/17) 标记此问题:https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12349663/ 更新:该标记可能只是表明它不是 MS Edge 的问题,因此它不会得到由 Edge 开发人员修复。

安装 KB4021558 会中断我们网站的打印(页面为空白,页脚显示 "res://ieframe.dll/i273gyew.htm" 的某些变体)。卸载它可以恢复打印功能。

KB4021558 也包含在 KB4022719、KB4022725 和 KB4022727 中。

我找到了一个解决方法:如果您尝试打印的 iframe 可见,请右键单击它并从上下文菜单中选择打印预览...而不是打印...。预览似乎可以打印(但可能只显示部分框架内容)。

另外,郑重声明,有问题的 64 位 Win7 更新是 KB4022719。

andyfinch,你真是个天才!以下代码似乎适用于包含在框架中的打印按钮:

function Print() {
  if (document.queryCommandSupported('print')) {
    document.execCommand('print', false, null);
  }
  else {
    window.parent.<framename>.focus();
    window.print();
  }
}

这是我在 IE 11 中为此使用的解决方法:

  1. 右键单击框架并选择select全部,或[ctrl + A]框架
  2. 右键单击并选择打印预览
  3. "As selected on screen" 的预览中应该有一个选项。选择这个允许我打印框架中的所有内容。

更新: 微软现已发布补丁:Microsoft IE patch

只是想总结一下我发现并已发布在此处的解决方法。

1) 如果您使用自己的打印按钮,请更改为使用 document.execCommand('print', false, null);。使用 document.queryCommandSupported('print') 测试支持,如果不支持则调用 window.print()(可能只是 Firefox)

2) 使用打印预览。另外 select 要打印的页面部分,右键单击并 select 打印预览。然后selectAs selected on screen.

3) 使用其他浏览器,例如 Chrome

4) 卸载更新

5) 等待微软修复。他们的知识库页面 KB Link 已更新为已知问题。因此,您假设修复正在进行中。

我们在打印屏幕中有多个框架,调用 document.execCommand('print', false, null); 无法解决我们的问题。相反 window.parent[frameName].document.execCommand('print', false, null); 修复了它。

MS 昨天(6 月 27 日)发布了更新,解决了 Windows 10:

This non-security update includes quality improvements. No new operating system features are being introduced in this update. Key changes include:

• Addressed an issue introduced by KB4022715 where Internet Explorer and Microsoft Edge printing from a frame may result in 404 not found or blank page printed.

链接:

Windows 10(初始版本 - 内部版本 10240)

KB4032695 - Build 10240.17446

Windows 10 版本 1511(初始版本 - 内部版本 10586)

KB4032693- Build 10586.965

Windows 10 版本 1607(初始版本 - 内部版本 14393)

KB4022723 - Build 14393.1378

Windows 10 版本 1703(初始版本 - 内部版本 15063)

KB4022716 - Build 15063.447

Source/More info

我今天从 Windows Update Catalog 中抓取了它们,用于 WSUS。