2013-03-06 70 views
1

檢查出這個小提琴:http://jsfiddle.net/GxPmU/觸發iframe的點擊沒有工作

我試圖click事件上的iframe結合,但是,點擊iframe中不會觸發click事件相應

而且Firebug的控制檯還輸出錯誤:

Error: Permission denied to access property 'nodeType' 
[Break On This Error] 

if (selector.nodeType) { 

任何想法,我做錯了什麼,以及如何能夠在相應的iframe click事件綁定?

+2

「[同源策略](HTTP的情況下,古典:// en.wikipedia.org/wiki/Same_origin_policy)「? – insertusernamehere 2013-03-06 16:37:52

回答

0

從「Same origin policy」開始,您無法獲得點擊事件。

我創建了一個演示來顯示此行爲。第一個鏈接是在同一個來源,因此點擊被傳遞。在另一方面,第二個不響應:

HTML

<iframe id="iframe-test-1" src="jsfiddle.net/404"></iframe> 
<iframe id="iframe-test-2" src="http://jsfiddle.net/404"></iframe> 

演示

http://jsfiddle.net/V9WTA/

0

如果你想只知道無論何時對iFrame任何部分點擊情況發生,只是把iFramediv並綁定事件到div

+1

它不起作用。 http://jsfiddle.net/sWSUB/1/ – 2013-03-06 16:54:16

0

您需要指定div的z-index在iframe之前,並且使其絕對。

div#foo 
{ 
    z-index: 9999; 
    position: absolute; 
    width: 300px; 
    height: 300px; 
} 

Fiddle here.

您可能需要調整和重新定位基礎上的iframe股利。

+0

這將禁用與iframe的交互。 – insertusernamehere 2013-03-06 17:16:05

+0

這是真的。這只是模擬一個onclick;他們不能像您的答案中所解釋的那樣跨越原點。 – RenegadeMatrix 2013-03-06 17:18:16