Что такое современные методы использования script type = "text/html" и этот пример считается хорошим использованием?
Что-то вроде...
<script type="text/html" id="this-content1">
<h1>This Header Info One</h1>
<p>This content one. . .</p>
</script>
<script type="text/html" id="this-content2">
<h1>This Header Info Two</h1>
<p>This content two. . .</p>
</script>
... и используя jQuery для замены контента на основе хорошей практики выбора в сегодняшних стандартах?
Я просто использую script type = "text/html"..., чтобы разрешить динамические изменения моего контента, и я нахожу много способов сделать это. Есть ли источник, который может объяснить направление, в котором это происходит, и если какая-либо стандартизация этой практики.
Я вижу код вроде...
<div class="thumbnail">
<# if ( data.uploading ) { #>
<div class="media-progress-bar"><div></div></div>
<# } else if ( 'image' === data.type ) { #>
<img src="{{ data.size.url }}" draggable="false" />
<# } else { #>
<img src="{{ data.icon }}" class="icon" draggable="false" />
<# } #>
</div>
... вложен в тег script type = "text/html" и действительно не имеет понятия, почему он написан таким образом. Также просто намочите мой клюв в позвоночник, и это выглядит немного тяжелым, если вы просто хотите добавить обмен содержимым на одной странице.
Ответы
Ответ 1
В соответствии с спецификацией HTML5 для тега скрипта, совершенно нормально использовать <script>
с атрибутом type
установленным для любого допустимого типа MIME. Это включает в себя типы MIME, такие как text/html
или text/plain
.
Согласно спецификации HTML4 для тега скрипта, это не совсем нормально:
"Есть два типа авторов сценариев, которые могут быть прикреплены к HTML-документу: те, которые выполняются один раз, когда документ загружается [и t] шлангом, который выполняется каждый раз, когда происходит конкретное событие"
Вам не нужна основа для шаблонов. Вы можете использовать, например, jQuery или мой личный фаворит Mustache.js.
Ответ 2
Я предполагаю, что вы хотите сохранить часть HTML для использования позже. Ввод данных < script в тег script не имеет смысла. Делайте то, что делает Facebook!
<code class="hide" id="code1"><!--
<p>My HTML here</p>
<script>My Javascript here</script>
--></code>
Затем вы можете захватить HTML позже и сделать то, что захотите позже:
var html = document.querySelector('#code1').innerText.slice(5, -5)
Скрипты внутри не будут выполняться до тех пор, пока вы не обработаете их правильно.
Некоторые примечания:
- Не знаю, какие различия между innerText и другими текстовыми функциями
- Я не думаю, что вы можете просто вставить теги script в DOM. Не знаете, как это работает jQuery.