2016-12-06 97 views
1

我在從父母窗口與子女iFrame進行通信時遇到問題。但在另一方面,一切正常。 這裏是我讓柒iFrame對象,以火的postMessage功能:從父母到子女iFrame發佈與postMessage的溝通

var iFrame = document.getElementById('Frame').contentWindow; 

當我打印詮釋,他的安慰,我得到如下:

Window {parent: Window, opener: null, top: Window, length: 0, frames: Window…} 

當我繼續postMessage功能,如下所示:

iFrame.postMessage("message", "http://contoso.com"); 

它給我看一個錯誤r當加載頁面時:iFrame.postMessage不是函數。 當我執行在控制檯中的postMessage,我得到一個不確定

我在做什麼錯?

+0

你還需要有兩個網站的控制權。你擁有'contoso.com'嗎? – zer00ne

+0

您需要在'contoso.com'上設置e.origin,您確定您可以編輯該網站嗎?上次我查了一下,MS仍然擁有它。 – zer00ne

+0

我已經用contoso.com替換了我的網站,只是爲了這個帖子。在子iFrame中的事件偵聽器中,e.origin設置正確。我在操作事件對象之前添加了日誌,但它永遠不會達到這一點。 –

回答

1

下面的代碼也可以。

$('#id')[0].contentWindow.postMessage("hello world",targetOrigin);

有jQuery選擇和的document.getElementById之間的差。

Document.getElementByID返回HTML DOM對象。
jQuery選擇器返回jQuery對象。

欲瞭解更多信息,請在下面的鏈接找到。 document.getElementById vs jQuery $()