2012-08-03 67 views
0

我在我的網頁上有一個iframe。所以當按下Esc時,我需要將焦點設置爲文檔的頂部框架。 iframe來自不同的域。 enter image description here如何將焦點設置爲iframe跨域內的頂部框架。

這裏框架-B的URL會出現一些abc.com和幀-A將是xyz.com

所以,當一個事件在幀-B被觸發,我需要對焦框-A。

我可以綁定Frame-A和Frame-B中的任意數量的事件。

我發現了一個像這樣的舊方法「iframe中的iframe中的iframe」。哪些不感興趣。

任何想法如何做到這一點?

回答

4

如果你對外框有一些控制權(假設它是你的網站,但仍然不是B),那麼你的問題有很多解決方案。 如果你對外框沒有任何控制權(因爲它是google.com的例子)那麼就沒有什麼可以做的。瀏覽器旨在防止它。見喬納斯的答案。

那麼如果你可以控制外部頁面呢?以下任何一種都可以使用:

  • 使用postMessage。你所要做的就是在Frame-A中添加一個非常通用的事件監聽器。除IE7及以下版本之外,它在「所有」瀏覽器中都可用。
  • 使用服務器作爲中間人。從Frame-B發送請求到您的服務器,並讓Frame-A從那裏訪問它。如果你不想進行輪詢,你可以在Frame-A中使用web套接字(或者更好的web套接字庫,如果沒有web套接字,則會回退其他技術)。
  • 使用片段標識符hack。您可以在這裏閱讀有關(和其他幾種技術):http://softwareas.com/cross-domain-communication-with-iframes