作者:杨俊其632 | 来源:互联网 | 2023-02-01 11:56
对这个略带模糊的问题道歉,但我正在把头发拉出来.自此更新以来,我们已经有很多关于从我们的网络应用程 我们的网络应用程序使用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函数,如果你然后使用浏览器打印按钮它也失败了.
任何指导都将非常感谢.
1> Thom..:
andyfinch,你是个天才!以下代码似乎适用于框架中包含的打印按钮:
function Print() {
if (document.queryCommandSupported('print')) {
document.execCommand('print', false, null);
}
else {
window.parent..focus();
window.print();
}
}
2> andyfinch..:
更新:微软现已发布补丁:微软IE补丁
只是想总结一下我找到的解决方法以及已在此处发布的解决方法.
1)如果您使用自己的打印按钮更改使用document.execCommand('print', false, null);
.测试支持使用document.queryCommandSupported('print')
和调用,window.print()
如果不支持(Prob只是Firefox)
2)使用打印预览.另外,选择要打印的页面部分,右键单击并选择打印预览.然后选择As selected on screen
.
3)使用Chrome等其他浏览器
4)卸载更新
5)等待Microsoft修复.他们的KB页面KB链接已作为已知问题更新.因此,您假设修复正在进行中.
3> ScottDW..:
andyfinch的解决方案也为我们工作.谢谢安迪!
MS已将此问题标记为"WILL NOT 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中.
"边缘"团队发布了"无法修复",但实际的MS KB有一个已知的错误部分确认(没有解决方法):https://support.microsoft.com/en-us/help/4021558/cumulative-security-更新换互联网探险日至13-2017