2016-10-18 51 views
0

我在想這是無辜的問題,但我真的不知道答案還沒有。事件冒泡沒有發生在IFrame

我們都知道,事件冒泡將事件引導到其預期的目標,它的工作原理如下:單擊按鈕並將事件指向按鈕。如果爲該對象設置了事件處理程序,則會觸發該事件。如果沒有爲該對象設置事件處理程序,則該事件會冒泡(如水中的氣泡)到對象父級。

HTML部分

<div> 
    <iframe> 
    <a>Clickable fdf Area</a> 
    </iframe> 
</div> 

JavaScript部分

$('div iframe').load(function(){ 
    var iframeBody = $(this).contents().find("body"); 
    iframeBody.html("<a href='www.google.com'>clickable area</a>"); 
    iframeBody.on("click", "a", function(){ 
    alert(22222); 
    }); 
document.getElementsByTagName("div")[0].addEventListener("click", function(event){ 
     alert(11111); 
}, true); 

}); 
$('iframe').attr("src","JavaScript:'iframe content'"); 

我的問題是清楚的。 當我嘗試點擊iframe'a'標籤時,爲什麼我沒有收到警報(11111)? 爲什麼不舉辦事件冒泡,以及通過代碼訪問事件的方式是什麼?

還引用了Fiddle link

+0

這是同源策略的結果是,你不能用代碼另一個域,除非它地同意溝通,甚至那麼它的消息傳遞。 –

+0

我的問題很清楚。當我嘗試點擊iframe'a'標籤時,爲什麼我沒有收到警報(11111)? –

回答