2012-01-12 72 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,以及何時完成了所有渲染。大多數人只是在頁面準備就緒的時候處理事情,並在輪流中迭代元素。