1

使用 TypeScript 我正在尝试实现此线程中提到的跨域通信

我的代码如下:

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

但是在文档之后的第二行中,我没有得到contentwindow.

有人可以提供解决方案吗?

4

1 回答 1

2

如果您所说的“句柄”是指您没有获得代码完成,那是因为contentWindow它是 的属性,而iframeElement不是文档的属性(顺便说一下,因为结果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', '*');
于 2013-02-25T17:33:23.840 回答