我一直在尝试向页面添加隐藏的 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);
我没有attachEvent
在IE中测试过。
有人对此有所了解吗?