2011-05-25 162 views
5

美好的一天。javascript - iframes和事件監聽器

請考慮包含iframe的頁面。 iframe源位於另一個域中。

我很想在兩件事情:

  1. 我可以建立一個監聽所發生的父窗口(並在iframe中運行的函數)事件iframe中的事件偵聽器?

  2. 我可以在父窗口內創建一個偵聽發生在iframe中的事件(並在父窗口中運行函數)的事件偵聽器嗎?

+2

簡答題:沒有。 – 2011-05-25 11:52:38

回答

3

這對兩個帳戶都是no,跨域腳本安全措施禁止任何跨域通信。

你可能想看看這篇關於Cross-Domain Communication with IFrames的深度文章。它談論你可以做什麼,不能做什麼,並提供一些替代品,如window.postMessage

+1

生命*****。任何解決方法? – zozo 2011-05-25 11:56:41

1

是的。但是它可能比你感興趣的工作更多。你需要爲與父頁面位於同一個域上的那個頁面創建一個代理。你的代理可能是一個簡單的傳遞,但它很可能會打破頁面;可能需要進行一些URL重寫,以便不中斷在該頁面上運行的腳本,這些腳本假定關於正在評估的上下文的事情,因此在該前端「它取決於」。

但是你的問題是「你能......嗎?」答案是「是」。