将iframe onload事件附加到某些div后触发

时间:2018-08-14 13:15:45

标签: javascript jquery html

将iframe onload事件附加到某些div后会触发。 这是代码的一部分:

for (var i = 0; i < items.length; i++) {
  addContent(element, items[i], loadData_.bind(this, i, items));
}

function appendNew(element, item, cb) {
  var itemContainer = $('<div>')
    .addClass('someclass');
  var chart = $('<iframe>')
    .css('height', 677)
    .attr('frameBorder', "0")
    .attr('scrolling', 'no')
    .on('load', function() {
      cb();
    });
  itemContainer.append(chart);
  tabContent.append(itemContainer);
}

因此,现在在此代码tabContent.append(itemContainer);之后触发了加载事件。为什么在我未设置src并加载一些内容的情况下触发此事件? 有什么主意吗?

2 个答案:

答案 0 :(得分:2)

尽管您未设置src,但空白的iframe会呈现到内容中。这就是触发onload函数的原因。

enter image description here

答案 1 :(得分:1)

对于iframe,在加载onload时会触发iframe事件。当将iframe添加到HTML时,它将被加载,这就是执行onload的原因。在属性更改时,它将再次加载。将加载事件处理程序添加到HTML之后,需要将其添加到iframe中。在此处阅读更多信息:https://www.w3schools.com/jsref/event_onload.asp