![在 Windows 7 上通过 IE9 进行打印](https://linux22.com/image/1304370/%E5%9C%A8%20Windows%207%20%E4%B8%8A%E9%80%9A%E8%BF%87%20IE9%20%E8%BF%9B%E8%A1%8C%E6%89%93%E5%8D%B0.png)
我创建了一个网站,无法在 Windows 7 64 位上的 IE9 中打印(文件 > 打印,也无法打印预览)。我测试过的所有其他浏览器都可以正常打印,并且我已经通过 W3C 验证器运行了该网站,并且已获得批准。有什么关于如何排除故障的建议吗?它只是打印一个空白页。
答案1
我在 IE9 的开发者模式下浏览了该网站。我发现了几个值得注意的地方。首先,禁用所有 CSS 允许页面内容显示在打印预览中,但这当然不是解决方案。但它确实告诉我们,CSS 渲染中的某些内容是罪魁祸首。进一步查看后,我发现其中有大量 CSS 属性,太多了,无法手动解析它们并隔离有问题的一个或一组(鉴于我现在可用的工具,我必须这样做)。
不过,我发现你的 <head> 块中的这一行似乎值得研究:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
这告诉 IE 使用 IE8 标准兼容模式。如果您手动告诉 IE9 使用 IE9 标准模式,页面内容将正确显示在打印预览中。
我没有进一步研究,但这似乎是 IE8 的渲染引擎处理网站 CSS 的一种特殊情况,而 IE9 实际上已经修复了这个问题。
如果您确实想让页面在 IE8 中可打印,那么我认为这应该会让您走上正确的方向。否则,您可以将其默认为 IE9 标准模式并将其称为“固定”。;)
答案2
此页面适用于 FireFox V9 或 Chrome V16,但不适用于 IEV9。无需打印即可查看,但请选中“打印预览”。CSS 在所有情况下(网络和打印)都使用媒体标签。您需要在 CSS 中隔离导致此操作在 IE 中失败的内容,然后使用单独的
<link media="print" type="text/css" href="myPrintVersion.css" />
对于该例外情况。(可能类似于省略背景图像,从而遮蔽整个打印页面)。