替代元素的onload

时间:2012-01-12 14:32:03

标签: javascript jquery html

是否有一个属性可以让JavaScript在浏览器完成元素解析后立即执行?

实际上,我希望有一个onload,并且能够将this作为参数传递给函数。

我找到的唯一解决方法是在元素上指定一个id并将其传递给我的元素后面的函数(在SCRIPT标记内)。

我想这样:

<div onload="doSomething(this);"></div>

而不是:

<div id="myId"></div>
<script>doSomething("myId");</script>

此外,该解决方案应与浏览器兼容。

2 个答案:

答案 0 :(得分:3)

你不公开承认这一点,但是你想做这样的事情的唯一原因是为了迭代许多元素并对所有元素执行相同类型的处理。如果是这样,你就走错了路。

简单地给所有这些元素一个共同的类,然后使用例如document.querySelectorAll找到他们并做你需要的事。您可以在load事件触发body元素时执行此操作。

答案 1 :(得分:2)

对于正常的页面加载,我不相信有这种级别的粒度。您可以检测何时加载了所有HTML以及何时完成所有渲染。大多数人只是在页面准备就绪时处理事情并反过来迭代元素。