2009-12-27 54 views
0

我已經學會了,你可以註冊身體onload事件是這樣的:如何在元素未加載時註冊元素onload?

window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false 

,所以我想註冊一個這樣的元素的onload:

document.getElementById(eleid).addEventListener('load', function, capture); 

但它得到了我的錯誤,說:「不能調用方法addeventlistener null「或類似的東西。
我認爲這是因爲document.getElementById(eleid)在註冊時還不存在。但我需要在元素加載之前註冊它,當元素已經加載時,註冊onload函數有什麼意義?該函數將永遠不會被調用。

所以問題是我該如何註冊一個元素onload函數呢?

更新:

感謝NSD,佩卡,並pygorex1,我現在知道,我不能比的身體和形象

所以現在的問題是,其他元素註冊onload事件,是有工作嗎?

基本上,我想要做的只是在圖像加載時才顯示div。 onload適用於圖像,所以這沒有問題。但有時圖像會緩存並在div之前加載,而當函數試圖顯示div時,它無法找到它。在那種情況下,我希望div一出現就顯示出來。

任何幫助,將理解

+2

爲什麼這被標記爲冒犯? – 2009-12-28 03:51:32

+0

因爲我的名字很冒犯,我想。有人改了我的名字,這已經不再令人反感了。這些天人們對屏幕名稱非常敏感。 – BigName 2009-12-28 08:14:26

回答

1

簡短的回答是:你做錯了。

當瀏覽器在遇到<div>標籤時會觸發理論onload事件?當它在屏幕上呈現?在DOM樹中解析元素時?

如果由於某種原因,您需要檢測元素何時生成(也許您正在通過AJAX加載HTML並將其注入到DOM中),您可以設置一個計時器以通過getElementById()檢查元素,然後執行一些操作用它。或者,更好的是,在動態加載元素後搜索元素。

+0

在加載後搜索元素意味着什麼?你能提供一些示例代碼嗎?謝謝,我是新來的JavaScript,事實上,我是新手腳本。 – BigName 2009-12-27 12:20:27

3

沒有onload處理程序的元件,只對主體和用於圖像標籤(其中,當所述圖像源被加載,而不是DOM元素本身在onload燒製)。

+0

謝謝, 很高興知道 – BigName 2009-12-27 12:17:57