2012-01-12 76 views
1

是否有一个属性,我可以将JavaScript放入执行一旦元素完成解析由浏览器?替代onload的元素

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

我发现的唯一工作就是在元素上指定一个id,并在元素后立即将它传递给一个函数(在SCRIPT标记内)。

我想这一点:

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

取而代之的是:

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

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

回答

3

你不会公开承认这一点,但你想做这样的事情的唯一原因是为了遍历一些元素并对它们执行相同类型的处理。如果是这样,你将走向错误的道路。

只需将所有这些元素设置为一个普通的类,然后使用document.querySelectorAll找到他们,并做你所需要的。您可以在load事件触发正文元素时执行此操作。

+0

同意,我不承认,但你是对的。这就是我想要做的。我将添加一个jQuery标签,因为我不反对使用它来解决这个问题。 – Matthew 2012-01-12 14:42:06

+0

@Matthew:'document.querySelectorAll'完全不依赖于jQuery,所以你不需要*为此使用它。 – Jon 2012-01-12 14:52:13

2

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