代码之家  ›  专栏  ›  技术社区  ›  hardfork

是否有一个类似于“onload”的事件监听器,用于Javascript中添加到DOM的新元素?

  •  0
  • hardfork  · 技术社区  · 5 年前

    Javascript是否提供了类似于onload的事件监听器,如果元素通过 innerHTML ?

    <body onload="alert('hi');">...</body> . 但它只在加载整个站点时才起作用。。有没有可能通过 innerHTML = ... 会立即触发事件侦听器吗?

    它应该是这样的,而且必须是这样的内联HTML侦听器:

    elementxy.innerHTML = '<b onload="dosth()">....</b>'
    
    1 回复  |  直到 5 年前
        1
  •  2
  •   CertainPerformance    5 年前

    这是一个 <img> 用一个 onerror src

    const dosth = () => {
      console.log('dosth');
    };
    
    div.innerHTML = '<b>b content<img style="display: none;" onerror="this.remove(); dosth()" src="badsrc"></b>';
    <div id="div"></div>

    这就是为什么插入不可信的HTML是个坏主意的一个原因——即使在 innerHTML ,它允许执行任意代码。