2013-02-25 44 views
1

使用打字稿我想如下實現跨域通信爲this thread實現跨域通信

我的代碼中提到的是:

var iframeElement = document.getElementById("myIframe"); 
iframeElement.document.contentWindow.postMessage('hello', '*'); 

但在文件之後第二行,我沒有得到的處理contentwindow

有人可以提供解決方案嗎?

+0

歡迎SO。請參閱常見問題(http://stackoverflow.com/faq)。我們通常會嘗試突出顯示代碼內容,以便閱讀,而且我們通常不會簽署我們的名字。我不確定上述問題中'處理'是什麼意思,你能否嘗試再次解釋這個問題? – JcFx 2013-02-25 17:28:46

回答

2

如果你所說的「處理」的意思是你沒有得到代碼完成,這是因爲contentWindowiframeElement的屬性,而不是文件(也順帶因爲document.getElementById結果是一個通用HtmlElement,不一個iframe)。

試試這個:

// Cast the result of getElementById, so you get an iframe and not a generic HtmlElement: 
var iframeElement:HTMLIFrameElement = <HTMLIFrameElement>document.getElementById("myIframe"); 
// Then reference the contentWindow property of the iframe element 
iframeElement.contentWindow.postMessage('hello', '*'); 
+0

感謝它的工作:) – user2108168 2013-02-26 16:31:43

+0

@ user2108168偉大 - 很高興有幫助。 – JcFx 2013-02-26 16:44:18