为什么 KB4022719 会导致 IE 停止打印弹出窗口和 Iframe?

为什么 KB4022719 会导致 IE 停止打印弹出窗口和 Iframe?

最新的 MS Rollup KB4022719 导致 IE 中的打印出现严重问题,因为 IE 中的打印功能从弹出窗口和 iframe 中打印。我见过许多人遇到这个问题。我提取了 .msu 和相关的 CAB 文件,其中有 564 个对 ieframe.dll 和 ie 更新的引用。卸载 Rollup 可以修复此问题,但我想看看是否有人知道我应该在 .dll 文件中的哪里查找 .msu“修复”的内容。我使用的是 IE 11。

IE 11 尝试打印并执行,但打印结果是“无法找到服务器”。

编辑:我无法更改来源。

编辑:显然,现在有一个补丁。

https://support.microsoft.com/en-us/help/4032782/a-blank-page-or-404-error-prints-when-you-try-to-print-a-frame-in-ie

答案1

最好编辑你的问题并说明你不能更改源代码 - 正如Thom已经说过的,你可以执行源代码更改:

感谢 Stack Overflow 上的 Thom (https://stackoverflow.com/questions/44547861/ie11-windows-7-print-issue-after-kb4021558/44574105#44574105):

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

如果您无权访问源代码,那么您就无法直接解决问题 - MS 还声明目前尚无针对已知问题的解决方案:https://support.microsoft.com/en-us/help/4021558/cumulative-security-update-for-internet-explorer-june-13-2017

此安全更新中的已知问题

打印网页中的特定 iframe 或框架时,打印输出可能为空白,或者打印类似于以下内容的文本:

404 – 未找到

(框架是网页或浏览器窗口的一部分,可显示独立于其容器的内容。框架可以独立加载内容。)

在 Internet Explorer 11 和托管 IE Web 浏览器控件的应用程序中也发现了这个问题。

目前尚无解决此问题的方法。但是,如果您打印整个网页,它将正确打印。

Microsoft 正在研究此问题,一旦获得更多信息,将会在本文中发布。

除此之外,您还可以在其他地方(MS Word/OpenOffice writer 等)按 CTRL+A CRTL+C CTRL+V 并希望打印出来正确,或者您可以右键单击/打印预览并打印(但您的里程会有所不同 - 大多数 iframe 只会以这种方式打印一部分)

实际的问题是临时文件在调用打印时如何交互,MS 似乎已经改变了调用 .print() 调用的临时文件的存储方法(来源: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12349663/

答案2

我们的一些员工在打印 SharePoint 网站时遇到了问题。他们正在打印页面,但打印出来的是空白页,页眉和页脚信息分别为第 1 页(共 0 页)和 res://ieframe.dll/ZmXORYC6.htm。我从电脑中删除了 kb4021558 更新,它对我有用。

还有一个解决方法,无需删除 KB4021558

  1. 右键单击框架并选择全部
  2. 右键单击并选择打印预览。
  3. 您的预览中应该有一个“如在屏幕上选择”的选项,选择此选项可以打印框架中的所有内容。

我在计算机上测试了这两项,并且它们都对我有用。

谢谢

答案3

我们的 2012 R2 RDS 服务器也遇到了同样的问题,我们通过安装此处的更新修复了这个问题https://www.catalog.update.microsoft.com/search.aspx?q=KB4032782

请参见KB4032782了解有关更新的更多信息。

答案4

除了向组件添加此样式之外,其他解决方案都对我不起作用:

position: isIE ? 'absolute' : 'relative'

相关内容