为什么使用<script>元素作为模板比其他元素更受欢迎?

时间:2017-06-21 08:41:26

标签: javascript html templates

我刚刚尝试使用&lt; style&gt; 标记可以完成与&lt; script&gt; 标记完全相同的事情,如果有人需要模板的话。但我在互联网上找不到使用&lt; style type =“text / x-template”&gt; 的任何用法。

&#xA;&#xA;

所以,我的问题是......为什么&lt; script&gt; 是首选?这里有任何历史原因或浏览器兼容性原因吗?

&#xA;&#xA;

以下是演示:

&#xA;&#xA;

&#xD;&#xA;
&# xD;&#xA;
 (function(){&#xD;&#xA; let output = document.getElementById('output' );&#xD;&#xA; let template = document.getElementById('template');&#xD;&#xA; let dom = document.createElement('div');&#xD;&#xA; dom.innerHTML = template.innerHTML;&#xD;&#xA; dom.getElementsByClassName('todo')[0] .textContent ='42';&#xD;&#xA; output.appendChild(dom);& #xD;&#xA;}());  
&#xD;&#xA;
 &lt ; style id =“template”type =“text / x-template”&gt;&#xD;&#xA;&lt; div&gt;这是来自模板!&lt; / div&gt;&#xD;&#xA;&lt; div class =“todo”&gt;&lt; / div&gt;&#xD;&#xA;&lt; div&gt;这也来自模板!&lt; / div&gt;&#xD;&#xA;&lt; / style&gt;& #xD;&#XA ;&lt; div&gt;输出前的内容:&lt; / div&gt;&#xD;&#xA;&lt; span id =“output”&gt;&#xD;&#xA;&lt; / span&gt;  < / PRE>&#的xD;&#XA; 
&#的xD;&#XA;
&#的xD;&#XA;

&#XA;

1 个答案:

答案 0 :(得分:1)

很好的问题,虽然我不认为这是一个很好的答案。

这些模板通常由javascript代码读取和处理。因此,与用于CSS的<script>标记相比,使用<style>标记来识别它们更有意义。

现在您将使用template tag as described here

可悲的IE 11 still doesn't support it, but the rest of browser support is pretty good