iframe поведение onload vs addEventListener ('load')

Я ' я играл с добавлением скрытых элементов iframe на страницу, и я хочу управлять DOM после загрузки. Я заметил, что не могу начать манипулировать DOM сразу после добавления iframe на страницу, поскольку он еще не загружен. Это невозможно сделать с помощью события DOMContentLoaded , поскольку оно срабатывает для документа, которого нет в iframe, пока он не будет добавлен на страницу, поэтому мы должны использовать загрузку ].

Вот тестовый код:

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);

Я не знаю ' t протестировал attachEvent в IE.

Кто-нибудь пролил свет на это?

19
задан roryf 7 March 2011 в 20:45
поделиться