我不想等到整个 HTML DOM 准备好。请注意,我不是在谈论动态加载的 HTML 元素。我说的是 HTML 中尚未渲染的元素。
问问题
276 次
2 回答
2
三个想法:
在 HTML 中使用属性,例如
onclick="foo()"
. 这将立即生效。您可以
<script>
在嵌入在 HTML 中的 HTML 元素之后立即放置一个标签,并让该脚本添加事件处理程序。位于脚本之前的所有 DOM 元素都保证被解析并准备就绪。您可以通过最初隐藏元素(内联样式规范或 CSS),然后等到它在 DOM 中,运行脚本来安装事件处理程序,然后使对象可见。如果使用
visibility: hidden
,则文档将正常布局,并且可以visibility: visible
在安装事件处理程序后制作内容。
浏览器在对象被解析并在 DOM 中之前不会提供对对象的访问,因此任何想要对其进行操作的脚本都必须在物理上位于 DOM 元素之后,或者必须等待指示 DOM 的事件发生已加载。
浏览器在解析 DOM 元素时不提供事件,但尚不可见,这将为您提供当时对其进行操作的机会,因此您必须使用其中一种其他方法来解决您的问题。
于 2013-11-14T04:31:21.053 回答
0
您必须等到 document.body 呈现。
之后任何事情都可以像这样完成
var ele = document.createElement("div");
ele.onclick = function(e){...};
document.body.appendChild(ele);
于 2013-11-14T04:31:42.733 回答