与此问题类似Applying an onclick event to an element that doesn't exist on page load 我正在异步加载一个iFrame,显然我只能用javascript设置样式。但是,我需要对样式进行一些调整,因此尝试将事件添加到页面加载中不存在的元素。我认为,使用上述问题的答案中的方法,我可以简单地添加“加载”事件而不是“单击”事件。
$('.widget-box').on('load','#iframeContainer',function(e){
// my code
});
但是,这似乎不起作用。 还有其他解决方案吗?
edit:正如评论者之一建议的那样,我使用了突变观察器。 现在可以使用,但看起来不是很干净。 如果您有任何改进的建议,我很高兴听到。
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
(function($) {
$('#okomoIframeContainer').load(function() {
console.log('its loaded');
})
})(jQuery);
});
});
observer.observe(widgetWrap, { childList: true });
edit2:而且,由于采用了同源策略,我仍然无法使用此方法修改iframe的内容