我已经定义了一个自定义元素,并且我只想在自定义元素升级到其注册类型时才执行脚本。用例是我必须调用自定义方法。
我的主 html 文件如下所示:
<project-list></project-list>
<script>
var project_list = document.getElementsByTagName("project-list")[0]
project_list.custom_method("some_data");
</script>
自定义元素在 HTML 导入中注册,如下所示:
<script>
"use strict";
var currentScript = document._currentScript || document.currentScript;
class ProjectList extends HTMLElement {
createdCallback(){
console.log("created");
}
custom_method(data) {
console.log("custom_method() OK");
console.log(data);
this.innerHTML = data;
}
}
document.registerElement("project-list", ProjectList);
</script>
我的问题很简单:如何确保仅在自定义元素获得其custom_method
方法后才调用主 html 文件中的脚本?
我正在寻找一个优雅的解决方案。规范作者会想到的东西。我不介意改变架构(例如,如果有必要,将 javascript 从主文件移动到另一个自定义元素中)。