如何在尚不存在的iframe上绑定点击事件?

时间:2019-07-28 07:05:44

标签: javascript jquery events iframe binding

我想在页面上动态创建的某些iframe上绑定事件。

有一种方法可以使用jQuery的.on()方法,并将选择器作为第二个参数,将事件绑定到页面上尚不存在的常规元素上。像这样:

$(document).on('click', 'div', () => { 
  // some code 
});

但是我猜iframe的行为有所不同。这行不通:

$(document).on('click', 'iframe', () => { 
  // some code 
});

我也想到了这些:

$(window).on('click', 'document', () => {});
// or
$(document).on('click', 'body', () => {});

他们都没有工作。

我还想到了另一种方法:

$(document).on('load', 'iframe', e => {
  $(e.target).contents().find('body').on('click', () => {
    // some code
  });
});

甚至没有为iframe绑定加载事件。

我可以用完全不同的方法来处理它。每次创建iframe时,我都可以将click事件绑定到代码中的其他位置,并且页面中“它们”确实存在,那么我可以将任何想要的事件绑定到它们。但我想将其作为最后的解决方案。 如果有一种方法可以在页面加载时为将在页面中动态创建的所有iframe绑定这些事件,请提出解决方案。

更新:我在同一域中,因此跨域限制不适用。

0 个答案:

没有答案