小码哥的IT人生

HTML <template> 标签 详解

HTML基础 2022-06-02 09:43:40小码哥的IT人生shichen

HTML <template> 标签

实例

使用 <template> 保留页面加载时隐藏的内容。使用 JavaScript 来显示:

<button onclick="showContent()">显示被隐藏的内容</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>

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<body>
<h1>template 元素</h1>
<p>单击下面的按钮,显示 template 元素中的隐藏内容。</p>
<button onclick="showContent()">显示隐藏的内容</button>
<template>
  <h2>Flower</h2>
  <img src="/i/photo/flower.gif" width="180" height="180">
</template>
<script>
function showContent() {
  var temp = document.getElementsByTagName("template")[0];
  var clon = temp.content.cloneNode(true);
  document.body.appendChild(clon);
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

页面下方有更多 TIY 实例。

定义和用法

<template> 标记用作容纳页面加载时对用户隐藏的 HTML 内容的容器。

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

如果您有一些需要重复使用的 HTML 代码,则可以使用 <template> 标记。如果在没有 <template> 标记的情况下执行此操作,必须使用 JavaScript 创建 HTML 代码,以防止浏览器呈现这些代码。

浏览器支持

元素 Chrome IE Firefox Safari Opera
<template> 26.0 13.0 22.0 8.0 15.0

全局属性

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

更多实例

示例代码:

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

<template>
  <div class="myClass">我喜欢:</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>

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<body>
<style>
.myClass {
  color: white;
  background-color: DodgerBlue;
  padding: 20px;
  text-align: center;
  margin: 10px;
}
</style>
<h1>template 元素</h1>
<p>本例使用包含数组中每个项目的新 div 元素来填充网页。</p>
<p>每个 div 的 HTML 代码在 template 元素内。</p>
<p>单击下面的按钮,显示 template 元素中的隐藏内容。</p>
<button onclick="showContent()">显示隐藏的内容</button>
<template>
  <div class="myClass">我喜欢:</div>
</template>
<script>
var myArr = ["奥迪", "宝马", "奔驰", "大众", "捷豹", "沃尔沃"];
function showContent() {
  var temp, item, a, i;
  temp = document.getElementsByTagName("template")[0];
  //get the div element from the template:
  item = temp.content.querySelector("div");
  //for each item in the array:
  for (i = 0; i < myArr.length; i++) {
    //Create a new node, based on the template:
    a = document.importNode(item, true);
    //Add data from the array:
    a.textContent += myArr[i];
    //append the new node wherever you like:
    document.body.appendChild(a);
  }
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

示例代码:

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

<script>
if (document.createElement("template").content) {
  document.write("Your browser supports template!");
} else {
  document.write("您的浏览器不支持 template!");
}
</script>

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<body>
<h1>template 元素</h1>
<script>
if (document.createElement("template").content) {
  document.write("您的浏览器支持 template!");
} else {
  document.write("您的浏览器不支持 template!");
}
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024