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