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 中为此使用的解决方法:
- 右键单击框架并选择select全部,或[ctrl + A]框架
- 右键单击并选择打印预览
- "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)
Windows 10 版本 1511(初始版本 - 内部版本 10586)
Windows 10 版本 1607(初始版本 - 内部版本 14393)
Windows 10 版本 1703(初始版本 - 内部版本 15063)
我今天从 Windows Update Catalog 中抓取了它们,用于 WSUS。
对于这个稍微含糊的问题表示歉意,但我正在拔头发。自这次更新以来,我们接到了很多关于从我们的网络应用程序打印的电话。我们的网络应用程序使用 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 中为此使用的解决方法:
- 右键单击框架并选择select全部,或[ctrl + A]框架
- 右键单击并选择打印预览
- "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)
Windows 10 版本 1511(初始版本 - 内部版本 10586)
Windows 10 版本 1607(初始版本 - 内部版本 14393)
Windows 10 版本 1703(初始版本 - 内部版本 15063)
我今天从 Windows Update Catalog 中抓取了它们,用于 WSUS。