HTML 导入不起作用...即使它受支持



我现在有点迷茫..我正在尝试使用自定义元素、模板、导入等来规范 Web 组件规范。但是由于某种原因,导入规范不起作用!Chrome 似乎没有在源代码部分加载我的导入,即使它在我的版本 (67( 中受支持,所有代码都是正确的,路径名也是如此。谁能帮我?这是我的项目:链接到github项目

如果你打开"index.html",你可以看到我有一个指向html文件的链接标签。在该文件中,我使用模板标签并将其内容附加到我创建的自定义元素的 shadowDOM 中。如果我手动将代码复制并粘贴到主 html 文件的正文中,它会起作用,但在尝试导入它时不会加载。任何意见将不胜感激,谢谢!

<template>元素不在主document中,而是在导入的文档中。因此,您将无法使用document.getElementById.

相反,您应该在导入的文档中搜索它:

1° 在导入<script>,定义一个引用导入文档的变量:

var importedDoc = document.currentScript.ownerDocument

2° 在自定义元素类定义中,使用它来获取<template>

constructor() {
super()
let template = importedDoc.getElementById( 'social-button' )
...
}

注意:由于本文中解释的某些原因,currentScript不能直接在constructor()中使用。

相关内容

  • 没有找到相关文章

最新更新