Почему мой документ не проверяется как 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 ошибка

  1. Строка ошибки 11, столбец 76: отсутствует атрибут "цель"

    ….Com" title=" Откроется новое окно " target="_blank"> Ссылка откроется в новом окне

Валидатор работает с 30.01.2012. Вы не можете пройти проверку, используя target = "_ blank"

Замените этой действительной частью кода:

OnClick = "TARGET ='_ пустое';"

Хотя xhtml может поддерживать "targrt="_blank", он НЕ БУДЕТ проверять его, потому что он устарел. Если вы не хотите использовать JS, вам придется использовать переходный, а не строгий, в вашем" типе документа ".

Другие вопросы по тегам