Javascript 当元素未加载时,如何注册onload元素?

Javascript 当元素未加载时,如何注册onload元素?,javascript,Javascript,我知道你可以像这样注册body onload: window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false document.getElementById(eleid).addEventListener('load', function, capture); 因此,我尝试在加载时注册一个元素,如下所示: window.addEventListene

我知道你可以像这样注册body onload:

window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false
document.getElementById(eleid).addEventListener('load', function, capture);
因此,我尝试在加载时注册一个元素,如下所示:

window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false
document.getElementById(eleid).addEventListener('load', function, capture);
但它给我带来了一个错误,说“不能调用null的addeventlistener方法”之类的话。
我认为这是因为注册时document.getElementById(eleid)还不存在。但是我需要在元素加载之前注册它,当元素已经加载时注册onload函数有什么意义?该函数永远不会被调用。

那么问题是如何注册一个元素onload函数呢

更新:

多亏了NSD、Pekka和pygorex1,我现在知道除了body和image之外,我不能为其他元素注册onload事件

所以现在的问题是,有没有解决办法

基本上,我想做的是仅在加载图像时显示div。onload适用于图像,所以这没有问题。但有时图像在div之前被缓存和加载,当函数试图显示div时,它找不到它。在这种情况下,我希望div一出现就展示自己


如果有任何帮助,我们将不胜感激。

元素没有
onload
处理程序,仅用于主体和图像标记(在加载图像源时触发onload,而不是DOM元素本身)。

元素没有
onload
处理程序,仅用于主体和图像标记(在加载图像源时触发onload,而不是DOM元素本身)。

简短的回答是:您做错了

当浏览器遇到
标记时,浏览器何时触发理论上的
onload
事件?当它呈现在屏幕上时?当元素在DOM树中解析时


如果出于某种原因需要检测元素何时生成(可能是通过AJAX加载HTML并将其注入DOM),可以设置计时器,通过
getElementById()检查元素
然后对其进行处理。或者,更好的做法是,在动态加载元素后搜索该元素。

简短的回答是:您做错了

当浏览器遇到
标记时,浏览器何时触发理论上的
onload
事件?当它呈现在屏幕上时?当元素在DOM树中解析时


如果出于某种原因需要检测元素何时生成(可能是通过AJAX加载HTML并将其注入DOM),可以设置计时器,通过
getElementById()检查元素
然后对其进行处理。或者,更好的做法是,在动态加载元素后搜索该元素。

加载元素后搜索该元素是什么意思?你能提供一些示例代码吗?谢谢,我对javascript不熟悉,事实上,我对脚本编写不熟悉。加载元素后搜索是什么意思?c你能提供一些示例代码吗?谢谢,我不熟悉javascript,事实上,我不熟悉脚本。为什么这会被标记为冒犯性的?因为我的名字是冒犯性的,我想。有人改变了我的名字,这不再是冒犯性的。现在人们对屏幕名称如此敏感。为什么这会被标记为冒犯性的?因为我的名字是冒犯性的,我想。有人改了我的名字,这不再是冒犯。现在人们对屏幕名称非常敏感。