【发布时间】:2011-07-10 09:38:12
【问题描述】:
我一直在尝试向页面添加隐藏的 iframe 元素,并且我想在加载后操纵这些元素的 DOM。我注意到在将 iframe 添加到页面后,我无法立即开始操作 DOM,因为它尚未加载。这不能通过 DOMContentLoaded 事件来完成,因为它会触发 iframe 中不存在的文档,直到它被添加到页面中,所以我们必须使用 load 事件。
这是一些测试代码:
var iframe = document.createElement('iframe');
iframe.onload = function() { console.log('loaded!'); };
document.getElementsByTagName('body')[0].appendChild(iframe);
这按预期工作,但是当我将其更改为 addEventListener 时,它甚至不会被添加到 DOM:
var iframe = document.createElement('iframe');
iframe.addEventListener('load', function() { console.log('loaded!'); });
document.getElementsByTagName('body')[0].appendChild(iframe);
我没有在 IE 中测试过attachEvent。
有人对此有所了解吗?
【问题讨论】:
标签: javascript html iframe onload-event