2011-08-21 81 views
1

頁面A和頁面B位於不同的域。來自外部域iframe的Javascript調用函數

A被的iFrame網頁B

我需要調用一個函數,它是第B從頁面A.

這是可能沒有像porthole

基本上我想要做的是一個簡單的推送通知(A通知B),不需要傳輸任何內容。

+0

你對兩個域都有控制權嗎? –

+0

很好。我完全控制了A,我可以說服B的所有者在他的頁面上放置一個函數/腳本。 – Chad

+0

那麼,你可能可以使用這個:[window.postMessage](https://developer.mozilla.org/en/DOM/window.postMessage)。 (注意:這是一個相當新的API) –

回答

0

把A和B放在同一個域中,不同的子域是好的。然後在iframe A中,可以調用parent.function_name(parameter1,parameter 2)。如果你需要經常調用該函數,你可能會想這樣做:

function p(data, div_id){parent.p(data, div_id);} 

然後在iframe中,你可以調用P(數據,div_id),這實際上將調用網頁B的功能。我用了很多彗星流。如果你有興趣,你可以看一下這,基本上使用iframe與數據通訊:

http://www.shanison.com/2010/05/10/stop-the-browser-「活動指示器 - 的 - 厄運」 -while加載-彗星永遠的iframe/

+0

子域解決方案不是一個選項。 – Chad

+0

是否有任何理由不做「var p = parent.p;」? –