2020年更新
现在HTML导入已经被弃用,你可以使用fetch()
来下载HTML代码:
最初的回答:
void async function () {
var templates = document.createElement( 'template' )
templates.innerHTML = await ( await fetch( 'templates.html' ) ).text()
var template1 = templates.content.querySelector( '#t1' )
var template2 = templates.content.querySelector( '#t2' )
console.log( template2 )
} ()
最初的回答
假设我们想要在名为templates.html的文件中导入一堆<template>
。
在主页index.html中,我们可以通过HTML Imports来导入该文件:
<link rel="import" href="templates.html" id="templates">
在导入的文件
templates.html中,添加一个或多个所需的模板:
<template id="t1">
<div>content for template 1</div>
</template>
<template id="t2">
content for template 2
</template>
导入的文档可以从
<link>
元素的
import
属性中获取。您可以在其上使用
querySelector
。"Original Answer" 的翻译是 "最初的回答"。
<script>
var link = document.querySelector( 'link#templates' )
var doc = link.import
var template1 = doc.querySelector( '#t1' )
var template2 = doc.querySelector( '#t2' )
</script>
注意:您可以将上述脚本放置在主文档中,也可以放置在导入的文档中,因为导入文件中的<script>
会在解析时立即执行(在下载时)。
最初的回答:请注意,您可以将上述脚本放置在主文档或导入的文档中,因为导入文件中的
<script>
会在解析时立即执行(在下载时)。