Javascript Can';无法按id查找模板,当它';在导入的文件中
我正在创建简单的自定义元素,我想从单独的文件中导入它。当它在同一个文件中时,Javascript Can';无法按id查找模板,当它';在导入的文件中,javascript,html,custom-element,Javascript,Html,Custom Element,我正在创建简单的自定义元素,我想从单独的文件中导入它。当它在同一个文件中时,t给出正确的html元素,但当它在外部文件中时,未定义。这是我的index.html文件: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="import" href="example-container.html"> </he
t
给出正确的html元素,但当它在外部文件中时,未定义。这是我的index.html
文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="import" href="example-container.html">
</head>
<body>
<example-container></example-container>
</body>
</html>
我的另一种方法是在全局范围内定义t
,如下所示:
var t = document.querySelector('#wizard-container');
WizardContainerProto.createdCallback = function() {
console.log(t);
...
它可以正常工作,但我不想在全局范围内留下垃圾。使用导入时,全局文档
对象指的是父页面(index.html),而不是导入的页面(例如container.html)。您可以使用document.currentScript.ownerDocument
获取导入的文档。因此,看起来您查询了错误的文档
请参阅HTML5Rocks上的。我已将行var t=…
更改为var t=document.currentScript.ownerDocument.querySelector(“#向导容器”)
现在我得到了未捕获的TypeError:无法读取null的属性'ownerDocument'
@scimonester正如@PiotrŁużecki所说,这似乎不起作用:document==document.currentScript.ownerDocument
var t = document.querySelector('#wizard-container');
WizardContainerProto.createdCallback = function() {
console.log(t);
...