2017-09-04 155 views
1

我使用的innerHTML像下面如何将点击事件添加到iframe的动态元素?

var iframe = document.getElementById('composer_frame'), iframedoc = iframe.contentDocument || iframe.contentWindow.document; 

iframedoc.body.innerHTML = "<a id='myAnch'>Click</a>"; 

和我想写这应该通过点击锚“#myAnch”

+0

[将事件添加到iframe中动态添加的元素](https://stackoverflow.com/questions/19897028/add-event-to-element-dynamically-added-inside-iframe) –

回答

0

被exicute功能加入一些HTML元素的iframe说明: - 由于您正尝试在iframe中的动态创建的元素上添加事件,因此您必须通过父引用来绑定它。

,基于父元素手段试图寻找出动态添加的元素,然后在其上添加事件(如jQuery的din't直接识别动态添加元素)

所以做象下面这样: - 。

$("#composer_frame").contents().find('#myAnch').on("click", function (e) { 
    e.preventDefault(); 
    alert('clicked'); 
}); 

工作片段: - https://jsfiddle.net/sycf9nz6/

This is called event-delegation

+0

thanks @Alive to死,你救了我的命;) –

+0

@GlenDavidson很高兴帮助你的朋友:) :) –

+0

也谢谢你@jeffreyrampineda :) –

1

试试这个:

$("#composer_frame").contents().find("#myAnch").on('click',function(){ 
    //do stuff 
}); 
1

你可以写功能元素这样

$('#myAnch', iframedoc).click(function() {console.log("a");}) 

,但你应该把父HTML页面上此代码。

相关问题