奇怪的问题。我有一个简单的webform,用户可以在其中填写文本并选中/取消选中一些复选框。当在IE(7或8)中将其打印为pdf或纸张(或打印预览)时,复选框将保持不变。例如。用户设置一个支票,打印未选中...或者取消选中未选中的预先复选框,打印检查。
收音机也一样。
仅当我完全删除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>
不适用于我测试的任何doctype(loose或html4)。
任何人都知道如何解决这个问题?
非常感谢, 迈克尔
答案 0 :(得分:5)
原来是一个IE8错误: http://webbugtrack.blogspot.com/2009/04/bug-444-ie8-printing-issues-in.html
“兼容性视图”打开时没有出现此问题。
解决方案是在标题中添加以下内容:
<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打开,你就会被微软搞砸了。