奇怪的问题。我有一个简单的网络表单,用户可以在其中填写文本并选中/取消选中某些复选框。当在 IE(7 或 8)中将其打印为 pdf 或纸张(或打印预览)时,复选框将保持不变。例如。用户设置了一个检查,这被打印为未选中......或者带有一个预先选中的框,用户未选中,被打印为选中。
radio 也是一样。
只有当我完全删除 DocType 时,IE 才能正确打印它。但我需要使用 XHTML-strict。
这是一个在 IE 中失败的简单示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="nl" xml:lang="nl-NL">
<body>
<input type='checkbox' name='y'/><br/>
<input type='radio' name='x'/><br/>
</body>
</html>
不适用于我测试的任何文档类型(松散或 html4)。
任何人都知道如何解决这个问题?
非常感谢,
迈克尔
最佳答案
原来是IE8的一个bug:
http://webbugtrack.blogspot.com/2009/04/bug-444-ie8-printing-issues-in.html
打开“兼容性 View ”没有这个问题。
解决方案是在标题中添加以下内容:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
当 IE9 出现时,这会破坏验证并出现问题。
JavaScript 的其他“不错”解决方法也适用:
<input type='checkbox' name='y' onclick='SetCheck(this)'/>
.....
function SetCheck(el)
{
if(el)
{
if(el.checked) el.setAttribute('checked','checked');
else el.removeAttribute("checked");
}
}
但是当你不能依赖 javascript 被打开时,你就被微软搞砸了。
关于internet-explorer - 使用 DocType 打印页面在 IE 中显示未更改的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591464/