最新的 MS Rollup KB4022719 导致 IE 中的打印出现严重问题,因为 IE 中的打印功能从弹出窗口和 iframe 中打印。我见过许多人遇到这个问题。我提取了 .msu 和相关的 CAB 文件,其中有 564 个对 ieframe.dll 和 ie 更新的引用。卸载 Rollup 可以修复此问题,但我想看看是否有人知道我应该在 .dll 文件中的哪里查找 .msu“修复”的内容。我使用的是 IE 11。
IE 11 尝试打印并执行,但打印结果是“无法找到服务器”。
编辑:我无法更改来源。
编辑:显然,现在有一个补丁。
答案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
- 右键单击框架并选择全部
- 右键单击并选择打印预览。
- 您的预览中应该有一个“如在屏幕上选择”的选项,选择此选项可以打印框架中的所有内容。
我在计算机上测试了这两项,并且它们都对我有用。
谢谢
答案3
我们的 2012 R2 RDS 服务器也遇到了同样的问题,我们通过安装此处的更新修复了这个问题https://www.catalog.update.microsoft.com/search.aspx?q=KB4032782
请参见KB4032782了解有关更新的更多信息。
答案4
除了向组件添加此样式之外,其他解决方案都对我不起作用:
position: isIE ? 'absolute' : 'relative'