对于稍微模糊的问题道歉,但我把头发拉了出来。自此更新以来,我们已经有很多关于从我们的网络应用程我们的网络应用程序使用iframe,我们使用css @media print来隐藏除iframe以外的所有内容以进行打印。自更新以来,用户收到错误404 - 未找到而不是实际页面。从网络跟踪看来,IE在本地目录中创建一个临时.htm文件,如D3CD911.htm,然后下载css / js资源,最后它调用/D3CD911.htm。这是致电www.mywebsite.co.uk/D3CD911.htm。这显然不存在于网站上,因此返回404。 我努力寻找问题的模式,但它似乎并没有影响其他公共网站。我认为问题在于window.print()方法。我可以在https://www.primefaces.org/showcase/ui/misc/printer.xhtml处半重现一遍。如果单击打印按钮,将出现错误。虽然这是使用jqprint javascript函数,但如果你随后使用浏览器打印按钮,它也会失败。
非常感谢任何指导。
答案 0 :(得分:13)
andyfinch,你是个天才!以下代码似乎适用于框架中包含的打印按钮:
function Print() {
if (document.queryCommandSupported('print')) {
document.execCommand('print', false, null);
}
else {
window.parent.<framename>.focus();
window.print();
}
}
答案 1 :(得分:9)
更新: 微软现已发布补丁:Microsoft IE patch
只是想总结一下我找到的解决方法以及已在此处发布的解决方法。
1)如果您使用自己的打印按钮更改以使用document.execCommand('print', false, null);
。使用document.queryCommandSupported('print')
测试支持,如果不支持则调用window.print()
(仅限Firefox)
2)使用“打印预览”。另外,选择要打印的页面部分,右键单击并选择打印预览。然后选择As selected on screen
。
3)使用Chrome等其他浏览器
4)卸载更新
5)等待Microsoft修复。他们的KB页面KB Link已作为已知问题更新。因此,您假设修复正在进行中。
答案 2 :(得分:7)
MS已将此问题标记为“将无法修复”(17/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中。
答案 3 :(得分:2)
我找到了一种解决方法:如果您尝试打印的iframe可见,请右键单击它并从上下文菜单中选择打印预览...而不是打印....预览似乎是可打印的(但可能只显示部分帧内容)。
此外,对于记录,有问题的64位Win7更新是KB4022719。
答案 4 :(得分:2)
MS昨天(6月27日)发布了针对Windows 10的更新:
此非安全更新包括质量改进。没有新的 此更新中引入了操作系统功能。键 变化包括:
•解决了KB4022715在Internet Explorer中引入的问题 和框架中的Microsoft Edge打印可能导致404找不到 或打印空白页。
<强>链接:强>
Windows 10(初始版本 - Build 10240)
Windows 10版本1511(初始版本 - Build 10586)
Windows 10版本1607(初始版本 - Build 14393)
Windows 10版本1703(初始版本 - Build 15063)
<强> Source/More info 强>
我今天从Windows Update Catalog抓住它们,与WSUS一起使用。
答案 5 :(得分:1)
这是我在IE 11中一直使用的解决方法:
答案 6 :(得分:0)
我们在打印屏幕中有多个框架,并且调用document.execCommand('print', false, null);
无法解决我们的问题。而是window.parent[frameName].document.execCommand('print', false, null);
修复了它。