2010-04-29 100 views
4

我試圖攔截包含在iframe中的頁面上單擊的鏈接。這是我有的代碼,但它不起作用。任何想法我需要做什麼?jquery - 在iframe中單擊攔截鏈接

$("#container").delegate('a', 'click', function(e){ 
//do stuff 
} 

Container是iframe中的div的id。

預先感謝任何建議

回答

2

您需要到達內設置委託在那裏,你可以做這樣的:

$('#myiframe').contents().find("#container").delegate('a', 'click', function(e){ 
    //do stuff 
} 

編輯 - Mailslut使得下方的好點,如果iframe不在同一個域(和端口)上,你不能做任何事情。如果是這種情況,你想知道更多關於爲什麼,read about the same-origin policy出於安全原因。

+0

來自不同域的IFRAME中的頁面?如果是這樣,你應該忘記能夠做到這一點。 – 2010-04-29 11:37:09

+0

該頁面可能是真的。它最有可能是另一個內部網站,所以我們的網站是our-site.blah.com,並且iframe中的鏈接可能是東西--else.blah.com - 是否會起作用? – Kaskade 2010-04-29 11:39:49

+0

@Kaskade - 如果你從'blah.com'運行主頁並且iframe是'something-else.blah.com',它會起作用,因爲它是一個子域目前的域名,但兄弟會不會...因爲說'google.com'是'yourbank.com'的兄弟姐妹,'com'域的兩個子目錄。 – 2010-04-29 11:42:38

1

爲什麼不在iframe中添加事件偵聽器,然後調用父/開啓器來通知事件。

如果您的iframe內容位於不同的域中,您將無法執行此操作,因爲它被歸類爲「點擊」,這是一個很大的安全威脅。