Есть ли разница между добавлением тегов шаблона в заголовок или тело документа HTML?
Нужно ли учитывать использование заголовка или тела для добавления тегов шаблона? Пример:
conste template = document.createElement('template');
// add template content etc.
document.body.appendChild(template);
// or
document.head.appendChild(template);
Я просто наткнулся на кодовую базу, которая динамически добавляет шаблоны в head
и моя интуиция говорит мне, что, возможно, это не лучшая идея, но, может быть, это не имеет значения?
2 ответа
Шаблоны являются одними из самых гибких элементов, где они могут быть размещены. Спецификация говорит
Контексты, в которых этот элемент может быть использован:
- Где ожидается содержание метаданных.
- Где ожидается фразовое содержание.
- Где ожидаются элементы поддержки сценариев.
- Как дочерний элемент элемента colgroup, который не имеет атрибута span.
"Где ожидается содержание метаданных". по сути значит в голове.
"Там, где ожидается фразовое содержание". по сути, означает, что куда угодно может пойти действительный потомок элемента body.
"Там, где ожидаются элементы, поддерживающие сценарий", это означает, что он может идти даже в тех местах, которые не могут содержать фразы, такие как дочерние элементы элементов ul, ol, table, tbody, tr и т. Д.
Я думаю, что это должно быть в <body>
, Mozilla определяет разрешенный контент в <head>
тег быть:
Если документ является
<iframe>
документ srcdoc, или если информация заголовка доступна из протокола более высокого уровня, ноль или более элементов содержимого метаданных. В противном случае, один или несколько элементов содержимого метаданных, где точно<title>
элемент.
Глядя на пример на MDN, они добавили <template>
тег в теле, а также.