Почему мой документ не проверяется как XHTML 1.1 STRICT? - PullRequest
5 голосов
/ 16 декабря 2009

Хотя 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.stackoverflow.com" title="New window will open" target="_blank">Link opens in new window</a>
</p>
</body>
</html>

Edit:

Означает ли это, что XHTML 1.1 поддерживает target = ”_ blank”, а XHTML 1.0 строго не поддерживает? Или это ошибка в валидаторе W3C?

Ответы [ 6 ]

4 голосов
/ 16 декабря 2009

Вы проходите проверку как XHTML Переходный , а не Строгий . Если вы вручную переопределите тип документа на 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">

Переходные схемы по-прежнему допускают определенные устаревшие элементы и атрибуты, я думаю, чтобы помочь людям переход в шагах к более строгой разметке.

EDIT:

ОК, поэтому исходный код был XHTML 1.1, в котором есть только одна версия (без строгой / переходной), и согласно этому FAQ целевой атрибут действительно не разрешен. Так что, я думаю, это ошибка в валидаторе.

2 голосов
/ 16 декабря 2009

Означает ли это, что XHTML 1.1 поддерживает цель = "_ blank", но XHTML 1.0 не строг?

Ну да.

Если вам нужен обходной путь для вашей проблемы, то это один из них. Другой вариант - использовать window.open () вместо target = "_ blank".

2 голосов
/ 16 декабря 2009

Документация XHTML1.1 показывает, что целевым атрибутом элемента a может быть "что угодно".

2 голосов
/ 16 декабря 2009

устарела, но не удалена Вот почему я думаю, что есть проблема в подтверждении этого.

1 голос
/ 30 января 2012

Я использовал ваш код и получил следующую ошибку.

Ошибка при проверке этого документа как XHTML 1.1!

Вывод проверки: 1 ошибка

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

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

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

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

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

0 голосов
/ 20 апреля 2010

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

...