2017-09-04 151 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頁面上此代碼。

相關問題