我想使用HTML导入,所以我创建了两个文件 文件1:
<!DOCTYPE html>
<html>
<head>
<style>
div {
height: 300px;
width: 300px;
background-color: yellow;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
文件2:
<!DOCTYPE html>
<html>
<head>
<link rel='import' href='test.html' id='LINK'>
<script>
var LINK = document.getElementById('LINK');
var test = LINK.import;
var content = document.importNode(test.content, true);
document.body.appendChild(content);
</script>
</head>
<body>
</body>
</html>
当我执行File2时,我应该看到一个黄色方块,但我得到了这个错误:
Uncaught TypeError: Failed to execute 'importNode' on 'Document': parameter 1 is not of type 'Node'.
at Import.html:8
当我记录&#34;测试&#34;变量到控制台,我得到包含File1的文档,所以它很好。我只是不知道错误应该是什么意思以及为什么它不起作用。
答案 0 :(得分:1)
当你写:
var content = document.importNode(test.content, true);
...您认为test
是<template>
元素。
因此,在您导入的文档中,您应该有一个<template>
元素。
的test.html:
<html>
<head>
<style>
div {
height: 300px;
width: 300px;
background-color: yellow;
}
</style>
</head>
<body>
<template><div></div></template>
</body>
</html>
在主文件中,使用querySelector()
(或其他选择器功能)来获取模板:
var LINK = document.getElementById('LINK');
var test = LINK.import.querySelector('template');
var content = document.importNode(test.content, true);
...