Печать страницы показывает неизменный флажок в IE с DocType - PullRequest
7 голосов
/ 28 августа 2010

Странная проблема. У меня есть простая веб-форма, где пользователи могут заполнять текст и отмечать / снимать флажки. Когда он печатается в формате PDF или на бумаге (или в режиме предварительного просмотра) в IE (7 или 8), флажки печатаются без изменений. Например. пользователь устанавливает чек, это печатается без проверки ... или с предварительно установленным флажком, когда пользователь не проверяется, печатается проверено.

То же самое касается радио.

Только когда я полностью удаляю DocType, IE печатает его правильно. Но мне нужно использовать XHTML-строгий.

Это простой пример, который не работает в 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).

Кто-нибудь знает, как это решить?

Большое спасибо, Michael

1 Ответ

5 голосов
/ 29 августа 2010

Оказывается, ошибка 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 включен, вы ввернуты Microsoft.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...