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);
...