HTML <template> 标签

定义和用法

<template> 标签用作容器,用于在页面加载时对用户隐藏一些 HTML 内容。

<template> 内部的内容可以在稍后使用 JavaScript 呈现。

如果您有一些希望重复使用的 HTML 代码,但在需要时才显示出来,您可以使用 <template> 标签。如果没有 <template> 标签,您需要使用 JavaScript 创建 HTML 代码来防止浏览器呈现该代码。

实例

例子 1

使用 <template> 来保存一些在页面加载时将被隐藏的内容。并使用 JavaScript 显示它:

<button onclick="showContent()">Show hidden content</button>

<template>
  <h2>Flower</h2>
  <img src="img_white_flower.jpg" width="214" height="204">
</template>

<script>
function showContent() {
  var temp = document.getElementsByTagName("template")[0];
  var clon = temp.content.cloneNode(true);
  document.body.appendChild(clon);
}
</script>

亲自试一试

例子 2

为数组中的每一项使用一个新的 div 元素填充网页。每个 div 元素的 HTML 代码都在 template 元素中:

<template>
  <div class="myClass">I like: </div>
</template>

<script>
var myArr = ["Audi", "BMW", "Ford", "Honda", "Jaguar", "Nissan"];
function showContent() {
  var temp, item, a, i;
  temp = document.getElementsByTagName("template")[0];
  item = temp.content.querySelector("div");
  for (i = 0; i < myArr.length; i++) {
    a = document.importNode(item, true);
    a.textContent += myArr[i];
    document.body.appendChild(a);
  }
}
</script>

亲自试一试

例子 3

检查浏览器对 <template> 的支持:

<script>
if (document.createElement("template").content) {
  document.write("Your browser supports template!");
} else {
  document.write("Your browser does not supports template!");
}
</script>

亲自试一试

全局属性

<template> 标签还支持 HTML 中的全局属性

浏览器支持

表中的数字注明了首个完全支持该属性的浏览器版本。

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
26.0 13.0 22.0 8.0 15.0