我想在页面上动态创建的某些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绑定这些事件,请提出解决方案。
更新:我在同一域中,因此跨域限制不适用。