如何在 innerHTML 中使用 onClick 函数

How to use onClick function inside innerHTML

这是我的 JS 文件,它是可重复使用的 HTML 组件之一,因为我没有使用任何框架。在此之前我使用的是ReactJS,因为某些原因,我要求不使用任何前端框架。

我的问题是我想为按钮创建 onClick 函数。我认为这与在 ReactJS 中使用 JSX 是一样的,但它不起作用。我想在 innerHTML 中添加 <script> 标签,但我认为它不相关,因为这已经是一个 javascript 文件。

class Header extends HTMLElement {
    connectedCallback() {
        this.innerHTML =
           `
             <button onclick="">Try it</button>
           `
    }
}

customElements.define('main-header', Header);

<button onclick="fn()">Try it</button>
或者直接在引号中写代码:
onclick="console.log('click')"

HolaPz 是正确的,但为了更清楚地展示-

function buttonClicked()
{
  console.log("You son of a gun, you did it");
}

class Header extends HTMLElement {
    connectedCallback() {
        this.innerHTML =
           `
             <button onclick="buttonClicked()">Try it</button>
           `
    }
}

customElements.define('main-header', Header);

注意:调用 buttonClicked 时,“this”上下文将设置为 Window 对象,并且只有顶级函数可用。根据您希望如何进行编码,在连接的回调中使用 this.querySelector 来获取对按钮的引用,然后手动向其添加绑定函数或事件侦听器(通过 addEventListener)可能是有意义的。