Javascript 为什么不是';当一切正常时,是否执行importNode?
我想使用HTML导入,因此创建了两个文件。Javascript 为什么不是';当一切正常时,是否执行importNode?,javascript,html,import,html-imports,html5-template,Javascript,Html,Import,Html Imports,Html5 Template,我想使用HTML导入,因此创建了两个文件。 文件1: div{ 高度:300px; 宽度:300px; 背景颜色:黄色; } 文件2: <!DOCTYPE html> <html> <head> <link rel='import' href='test.html' id='LINK'> <script> var LINK = document.getElementById('LINK');
文件1:
div{
高度:300px;
宽度:300px;
背景颜色:黄色;
}
文件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>
var LINK=document.getElementById('LINK');
var测试=LINK.import;
var content=document.importNode(test.content,true);
document.body.appendChild(content);
当我执行File2时,我应该看到一个黄色的方块,但是我得到了以下错误:
Uncaught TypeError:未能对“文档”执行“导入节点”:参数1不是“节点”类型。
在Import.html:8
当我将“test”变量记录到控制台时,我得到的是包含File1的文档,因此它在那里很好。我只是不明白错误的含义以及它不起作用的原因。当你写:
var content = document.importNode(test.content, true);
…您假设test
是一个
元素
因此,在您导入的文档中,应该有一个
元素
test.html:
您使用的
import
不正确。您应该导入一个网页的“片段”,而不是整个网页。@ScottMarcus那么我该怎么做呢?我使用的是我从一个教程中找到的代码。
var content = document.importNode(test.content, true);
<html>
<head>
<style>
div {
height: 300px;
width: 300px;
background-color: yellow;
}
</style>
</head>
<body>
<template><div></div></template>
</body>
</html>
var LINK = document.getElementById('LINK');
var test = LINK.import.querySelector('template');
var content = document.importNode(test.content, true);
...