Почему элементы <iframe>не проверяются в HTML 4.01? - PullRequest
3 голосов
/ 02 февраля 2011

Я просто проверял, было ли допустимым поместить элемент <iframe> в элемент <noscript> в качестве запасного варианта для отображения динамического содержимого.Он корректно подтвержден с типом документа HTML 5, но для HTML 4.01 я получаю следующую ошибку:

Строка 9, столбец 35: элемент "IFRAME" не определен

Вы использовали элемент, указанный выше, в своем документе, но тип используемого вами документа не определяет элемент с таким именем.Эта ошибка часто вызывается:

  • неправильным использованием типа документа "Строгий" с документом, в котором используются фреймы (например, для получения элемента "" необходимо использовать тип документа "Frameset"),
  • с использованием проприетарных расширений производителя, таких как "" или "" (обычно это исправляется с помощью CSS для достижения желаемого эффекта).
  • с использованием тегов верхнего регистра в XHTML (в атрибутах и ​​элементах XHTML все должны быть в нижнем регистре).

Это то, что я сократил до HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
          "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
   <title>I AM YOUR DOCUMENT TITLE REPLACE ME</title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
   <div>
     <iframe name="test" src="test.htm"></iframe>
   </div>
</body>
</html>

Элемент <iframe> определен в спецификации HTML 4.01 по следующему URL: http://www.w3.org/TR/html401/present/frames.html#h-16.5.

Он проходит с переходным типом документа, поэтому я предполагаю, что мой вопрос: «Почему он запрещен в строгом типе документа, даже если он определен в спецификации?».

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

"Почему он запрещен в строгом типе документа, даже если он определен в спецификации?

Многое определено в спецификации, но не разрешено в Strict. <font>На ум приходят такие вещи: те вещи, которые разработчики спецификации считали нуждающимися в документировании, использовались в браузерах в тот день, но которые следует отойти от.

Я могу вспомнить две причины, почемуони могли бы подумать, что:

3 голосов
/ 02 февраля 2011

iframe не входит в строгий HTML. Для проверки попробуйте вместо этого использовать элемент объекта.

<object data="test.html" type="text/html"></object>

Вы также должны добавить атрибуты ширины и высоты к элементу объекта. Обратите внимание, что в отличие от iframes объекты не могут быть целью для каких-либо ссылок на страницы.

Если по какой-то причине вам не требуется строгое подтверждение html4, лучше использовать тип документа html5.

...