想象一下,我们想在一个名为templates.html<template>
的单独文件中导入一堆s 。
在(主)主页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>
导入的文档可从元素的import
属性中获得。<link>
你可以querySelector
在上面使用。
<script>
//get the imported document in doc:
var link = document.querySelector( 'link#templates' )
var doc = link.import
//fetch template2 1 and 2:
var template1 = doc.querySelector( '#t1' )
var template2 = doc.querySelector( '#t2' )
</script>
注意:您可以将上述脚本放在主文档中,也可以放在导入的文件中,因为<script>
导入文件中的 s 会在解析后立即执行(在下载时)。
2020 更新
现在 HTML Imports 已被弃用,您可以使用它fetch()
来下载 HTML 代码:
void async function () {
//get the imported document in templates:
var templates = document.createElement( 'template' )
templates.innerHTML = await ( await fetch( 'templates.html' ) ).text()
//fetch template2 1 and 2:
var template1 = templates.content.querySelector( '#t1' )
var template2 = templates.content.querySelector( '#t2' )
console.log( template2 )
} ()