我创建了一个没有任何框架的小组件。这是我的index.html
:香草的Web组件JavaScript
<!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();' –
谢谢我必须删除异步 – asv