gpt4 book ai didi

javascript - 在导入的文件中无法通过 id 找到模板

转载 作者:行者123 更新时间:2023-11-28 00:12:07 25 4
gpt4 key购买 nike

我正在创建简单的自定义元素,我想从单独的文件中导入它。当它在同一个文件中时,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>

example-container.html:

<template id="example-container">
<style>
</style>
</template>
<script>
// Make sure you extend an existing HTMLElement prototype
var ExampleContainerProto = Object.create(HTMLElement.prototype);

//var t = document.querySelector('#example-container');

// Setup optional lifecycle callbacks
ExampleContainerProto.createdCallback = function() {
var t = document.querySelector('#example-container');
console.log(t);
};
var ExampleContainer = document.registerElement('example-container', {prototype: ExampleContainerProto});
</script>

我的另一种方法是在全局范围内定义t,如下所示:

var t = document.querySelector('#wizard-container');
WizardContainerProto.createdCallback = function() {
console.log(t);
...

它工作得很好,但我不想在全局范围内留下垃圾。

最佳答案

使用导入时,全局 document 对象引用父页面 (index.html),而不是导入的页面 (example-container.html)。您可以使用document.currentScript.ownerDocument获取导入的文档。因此,您似乎查询了错误的文档。

参见HTML Imports - #include for the web在 HTML5Rocks 上。

关于javascript - 在导入的文件中无法通过 id 找到模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30790993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com