2009-08-24 50 views
0

什麼方法可以用於監視IFRAME頁面的狀態,我知道有安全界限,但我希望一些小的通知系統仍然是可能的。監測的iframe內容/狀態

我的情況是,我創建了位於客戶的服務器上的父頁面,而這個頁面已經有iframe的頁面位於我的服務器(我的域)上。我需要以某種方式傳達有點之間這兩個:

我可以JavaScript來可以檢查我的iframe頁面上有一個特定的字符串,或以某種方式使iframe的頁面通知父頁面父頁面?

是否有例如任何可能使定時器檢查iframe內容的時間?

我也接受答案的mydomain/client.page如何調用customerdomain.intranet.com/parentpage.htm回調有客戶端上的iframe

回答

0

我得到的信息,這是可以通過設置parent.location(從IFRAME)有這樣的「mydomain.com/mypage#mymessage」

0

默認情況下,在瀏覽器的安全限制,將防止/到訪問如果它位於與父頁面不同的域中,則在iframe中的文檔。當然,這應該是。

我相信這會妨礙甚至檢查iframe的當前位置,但是這容易測試。如果可以訪問,那麼您可以輪詢iframe獲取它的位置,並且每當iframe更新時頁面,都會附加一個隨機查詢字符串參數。將該參數與先前輪詢的值進行比較會告訴您它是否已更改。

然而,正如我說的,我懷疑這是不可能的。

編輯:這個問題表明,它是唯一可能的初始src屬性:How do I get the current location of an iframe?

1

您需要使用跨網站的JavaScript技術,能夠做到這一點。這是一個例子。

換個文件到你的服務器,把它helper.html,包括到您的文件通過使用iframe客戶服務器提供服務。通過添加get參數來設置helper.html iframe的src,即。 HTTP:/myserver.com/helper.html參數1 =一個&參數2 = B,在幫助文件中使用JavaScript來調用方法對父親的父親(parent.parent.messageFromIframe(PARAMS))。哪個是你服務器本身的頁面。由於助手和容器頁面在同一個域上,它應該可以工作。這項技術非常流行,例如Facebook將它用於Javascript API。

+0

對不起散列數據不完全瞭解這一個..聽起來不錯!你能否提供更多細節。我想在兩個域之間進行通信。 – Tom 2009-08-24 12:06:20

+0

基本上你可以與助手文件進行通信,設置src iframe包含它並傳遞參數。助手內部的js代碼可以訪問父級的父級函數,這意味着您可以在自己的容器頁面內調用任何js代碼。 – 2009-08-24 12:27:11

+0

所以你的意思是有遞歸iframe,我的iframe中的另一個iframe? – Tom 2009-08-24 12:49:34