在kb4021558之后的IE11 Windows 7打印问题

时间:2017-06-14 14:38:58

标签: internet-explorer-11

对于稍微模糊的问题道歉,但我把头发拉了出来。自此更新以来,我们已经有很多关于从我们的网络应用程我们的网络应用程序使用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函数,但如果你随后使用浏览器打印按钮,它也会失败。

非常感谢任何指导。

7 个答案:

答案 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)

andyfinch的解决方法也适用于我们。谢谢安迪!

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)

KB4032695 - Build 10240.17446

Windows 10版本1511(初始版本 - Build 10586)

KB4032693- Build 10586.965

Windows 10版本1607(初始版本 - Build 14393)

KB4022723 - Build 14393.1378

Windows 10版本1703(初始版本 - Build 15063)

KB4022716 - Build 15063.447

<强> Source/More info

我今天从Windows Update Catalog抓住它们,与WSUS一起使用。

答案 5 :(得分:1)

这是我在IE 11中一直使用的解决方法:

  1. 右键单击框并选择全部选择,或在框架中选择[ctrl + A]
  2. 右键单击并选择打印预览
  3. 预览中应该有一个选项&#34;在屏幕上选择&#34;。选择这个允许我打印框架中的所有内容。

答案 6 :(得分:0)

我们在打印屏幕中有多个框架,并且调用document.execCommand('print', false, null);无法解决我们的问题。而是window.parent[frameName].document.execCommand('print', false, null);修复了它。