Почему мой документ не проверяется как XHTML 1.1 STRICT?
Хотя target="_blank" устарела, почему валидатор W3C не выдает ошибку по этому поводу? Вы можете вставить и проверить этот код в валидаторе:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>
<a href="http://www.stackru.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>
Редактировать:
Означает ли это, что XHTML 1.1 поддерживает target=”_blank”, а XHTML 1.0 строго не поддерживает? Или это ошибка в валидаторе W3C?
6 ответов
Вы проходите валидацию как XHTML Transitional, а не как Strict. Если вы вручную переопределите тип документа на XHTML 1.0 Strict, вы получите эту ошибку:
Строка ошибки 11, столбец 76: Атрибут "target" существует, но не может использоваться для этого элемента.
… Om" title=" Откроется новое окно " target="_blank"> Ссылка откроется в новом окне
Используйте этот тип документа, если вы хотите быть строгим:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Переходные схемы по-прежнему допускают определенные устаревшие элементы и атрибуты, я думаю, чтобы помочь людям перейти к более строгой разметке.
РЕДАКТИРОВАТЬ:
Итак, исходный код был XHTML 1.1, в котором есть только одна версия (без строгой / переходной), и в соответствии с этим FAQ целевой атрибут действительно не разрешен. Так что я думаю, это должно быть ошибка в валидаторе.
Означает ли это, что XHTML 1.1 поддерживает target=”_blank”, но XHTML 1.0 не строг?
Ну да.
Если вам нужен обходной путь для вашей проблемы, то это один из них. Другой вариант - использовать window.open() вместо target="_blank".
Это устарело, но не удалено. Вот почему я думаю, что есть проблема в подтверждении этого.
Документация XHTML1.1 показывает, что целевой атрибут a
Элемент может быть "что угодно".
Я использовал ваш код и получил следующую ошибку.
Обнаружена ошибка при проверке этого документа как XHTML 1.1!
Результат проверки: 1 ошибка
Строка ошибки 11, столбец 76: отсутствует атрибут "цель"
….Com" title=" Откроется новое окно " target="_blank"> Ссылка откроется в новом окне
Валидатор работает с 30.01.2012. Вы не можете пройти проверку, используя target = "_ blank"
Замените этой действительной частью кода:
OnClick = "TARGET ='_ пустое';"
Хотя xhtml может поддерживать "targrt="_blank", он НЕ БУДЕТ проверять его, потому что он устарел. Если вы не хотите использовать JS, вам придется использовать переходный, а не строгий, в вашем" типе документа ".