【问题标题】:What's the onload equivalent for most elements?大多数元素的 onload 等效项是多少?
【发布时间】:2021-07-27 15:19:10
【问题描述】:

How to add onload event to a div element 指出onload 属性仅适用于<body> 和外部源(如<script>)。

所以对于那个问题中的例子:

<div onload="oQuickReply.swap();" ></div>

永远不会调用 onload 内容。


当 div 添加到页面时,如何通过 div 元素 HTML 本身触发一些 javascript 运行?

如我们所见

$('<div onload="myFunction()"></div>').appendTo('body');

行不通。 myFunction 不会被调用,因为 onload 甚至不会为 div 触发。


我正在使用 C# Razor/DevExtreme 在后端创建 HTML,它不会立即加载整个网页,而是 I want to run some code after some part of the webpage has loaded。这就是为什么我不能只是

$('<div></div>').appendTo('body');
myFunction();

【问题讨论】:

  • appendTo 是即时的。你有什么理由不能只做$('&lt;div&gt;&lt;/div&gt;').appendTo('body'); myFunction()
  • @edemaine 是的,我不是做注射的人
  • 您不能仅使用插入元素内的标记来触发事件。在插入之前,您需要将触发器放在适当的位置。试试 document.addEventListener('DOMNodeInserted', myFunction): stackoverflow.com/questions/9778962/… (当然,你需要过滤感兴趣的节点——在这里你可以在新的 DOM 节点中插入一些标记然后您可以将其用作 myFunction 中的过滤条件)。
  • @orithena 看起来是最好的解决方法,谢谢

标签: javascript html


【解决方案1】:

大多数元素不加载任何东西,它们只是

要在将 DIV 添加到 DOM 后执行某项操作,只需在下一行代码中执行该操作即可:

$('<div onload="myFunction()"></div>').appendTo('body');
console.log("The div will be in the DOM now");

【讨论】:

  • 我无法控制这部分代码,只有将要呈现的 HTML 和一些 JavaScript
  • 我将删除 onload 并将 console.log(...) 替换为 myFunction()。 ^^
  • stackoverflow.com/q/68542423/3310334 以防您想查看原始问题
猜你喜欢
  • 1970-01-01
  • 2018-08-18
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
相关资源
最近更新 更多