Относится ли DOCTYPE только к разметке или также к DOM? - PullRequest
10 голосов
/ 25 января 2010

До какого уровня абстракции остается актуальным объявление <!DOCTYPE> (и тип содержимого) документа?

Например, если я работаю с XHTML, но хочу использовать элемент, который недоступен в XHTML - простой пример - iframe - будет ли плохой практикой добавлять элемент с помощью JavaScript? Или я должен либо не использовать iframe, либо не использовать XHTML?

Валидатор все равно будет проверять документ - так как он не выполняет JS - но есть что-то теоретически неправильное при изменении DOM, поэтому он больше не соответствует <!DOCTYPE> (и возвращенному типу содержимого), или <!DOCTYPE> относится только к разметке, когда она находится в текстовой форме?

Добавление

Если говорить более конкретно, мой вопрос не о том, как <!DOCTYPE> повлияет на JavaScript или как JavaScript будет выполняться, а о том, как это должно повлиять на выбор разработчиков в отношении добавления, удаления и изменения элементов программным путем.

Мой пример: если клиент хочет совместимости с XHTML и редакторов WYSIWYG, что вы делаете с iframe, который часто поставляется с редакторами WYSIWYG? Вы должны удалить его из разметки, только для document.appendChild() в JS? Или вы говорите своему клиенту, что он должен выбирать между двумя - iframe или XHTML?

Ответы [ 3 ]

3 голосов
/ 25 января 2010

Определение DOCTYPE в терминах стандартов описывает разметку. Таким образом, как только разметка была проанализирована пользовательским агентом, DOCTYPE теряет значение в этом отношении . С практической точки зрения DOCTYPE также запускает поведение браузера, поэтому то, что вы делаете с / для DOM, динамически зависит от DOCTYPE.

1 голос
/ 25 января 2010

Eesh, я вижу вашу точку зрения. Если у вас есть один из тех клиентов, которые считают, что веб-страница не годится, если она не XHTML, было бы сложно отговорить их от этого.

Стоит попробовать: кажется, бессмысленно тратить время на написание JavaScript для вставки элементов, которые недопустимы в XHTML, вместо того, чтобы просто использовать тип документа, который допускает элементы.

<iframe> все еще разрешено в XHTML 1.0 Transitional, не так ли? Это вариант?

0 голосов
/ 25 января 2010

Я ни в коем случае не фанатик правил или стандартов, но вставлять элементы HTML в тип документа, который не поддерживает этот элемент, глупо, потому что это может привести к тонким проблемам в будущем, которые невозможны отлаживать.

Итак: это, вероятно, будет работать, и не будет никаких проблем. (Ваш босс или клиент никогда не узнают, так как валидатор может работать только на базовом HTML).

Я бы все равно не рекомендовал это делать.

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