【发布时间】:2017-05-12 16:24:53
【问题描述】:
我创建了一个没有任何框架的小型 Web 组件。这是我的index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<script src="clock.js" async></script>
</head>
<body>
<clock-digital></clock-digital>
<script>
console.log(document.querySelector('clock-digital').cID);
document.querySelector('clock-digital').method();
</script>
</body>
</html>
这是我的clock.js:
customElements.define('clock-digital', class extends HTMLElement {
get cID() {}
set cID(value) {}
constructor() {
super();
var shadowRoot = this.attachShadow({
mode: 'open'
});
var that = shadowRoot;
this.cID = setInterval(function () {
var currentdate = new Date();
that.innerHTML = `<div style="display: inline; background-color: whitesmoke; font-style: italic;">${currentdate.getHours()}:${currentdate.getMinutes()}:${currentdate.getSeconds()}</div>`;
}, 500);
}
method() {
console.log('method');
}
});
浏览器控制台显示此错误:
undefined (index):14 Uncaught TypeError: document.querySelector(...).method is not a function at (index):14
为什么我的内联脚本无法访问cID 和method()?
【问题讨论】:
-
如果您将选择分配给一个变量然后调用它的方法,它仍然会发生吗?类似
var clock = document.querySelector('clock-digital'); clock.method(); -
谢谢我也必须删除异步
标签: web-component custom-element