我了解到你可以像这样注册body onload:
window.addEventListener('load', function, capture); // or attachEvent for ie; capture is true or false
所以我试着像这样注册一个元素onload:
document.getElementById(eleid).addEventListener('load', function, capture);
但它让我错误,说“无法调用null的方法addeventlistener”或类似的东西。
我认为这是因为当注册发生时,document.getElementById(eleid)还不存在。但是我需要在元素加载之前注册它,当元素已经加载时注册onload函数是什么意思?该函数永远不会被调用
那么问题是我如何注册元素onload函数呢?
更新
感谢NSD,Pekka和pygorex1,我现在知道我不能为身体和图像以外的元素注册onload事件
所以问题是,是否有解决方法?
任何帮助将不胜感激
答案 0 :(得分:3)
元素没有onload
处理程序,仅适用于正文和图像标记(加载图像源时会触发onload,而不是DOM元素本身)。
答案 1 :(得分:1)
简短的回答是:你做错了。
当浏览器遇到onload
标记时,它会在何时触发理论<div>
事件?什么时候在屏幕上呈现?在DOM树中解析元素时?
如果由于某种原因你需要检测元素何时出现(也许你是通过AJAX加载HTML并将其注入DOM),你可以设置一个计时器来通过getElementById()
来检查元素。然后用它做点什么。或者,更好的是,在动态加载后搜索元素。