Есть ли разница между добавлением тегов шаблонов в заголовок или текст HTML-документа? - PullRequest
0 голосов
/ 21 сентября 2018

Нужно ли учитывать использование головы или тела для добавления тегов шаблона?Пример:

conste template = document.createElement('template');
// add template content etc.

document.body.appendChild(template);
// or
document.head.appendChild(template);

Я просто наткнулся на кодовую базу, которая динамически добавляет шаблоны к head, и моя интуиция говорит мне, что, возможно, это не лучшая идея, но, возможно, это не имеет значения?

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Шаблоны являются одними из самых гибких из всех элементов, в которых они могут быть размещены. Спецификация говорит

Контексты, в которых этот элемент может использоваться:
- Где ожидается содержание метаданных.
- Где ожидается фразовое содержание.
- Где ожидаются элементы поддержки сценариев.
- как дочерний элемент элемента colgroup, у которого нет атрибута span.

«Где ожидается содержание метаданных».по сути, означает в голове.

«Где ожидается фразовое содержание».по сути, означает, что везде, где может находиться действительный дочерний элемент элемента body.

«Там, где ожидаются элементы, поддерживающие сценарии», означает, что он может использоваться даже в тех местах, где не может быть сформулирован контент, например, дочерний элемент ul, ol., table, tbody, tr и т. д.

0 голосов
/ 21 сентября 2018

Я думаю, что это должно быть в <body>. Mozilla определяет разрешенное содержимое в теге <head> следующим образом:

Если документ является документом <iframe> srcdoc или информацией заголовкадоступно из протокола более высокого уровня, ноль или более элементов содержимого метаданных.В противном случае, один или несколько элементов содержимого метаданных, где ровно один является элементом <title>.

Глядя на пример на MDN , они добавили тег <template>в теле.

...