无法在“窗口”上执行“postMessage”:目标来源无效

时间:2015-04-28 11:35:25

标签: html5 iframe sandbox postmessage

我有iframe:

<iframe id="GameFrame" 
sandbox="allow-scripts allow-pointer-lock" 
src="https://127.0.0.1:112/games/1047/play">
</iframe>

我的父母页面位于:

https://127.0.0.1/arcade/not-hidden/space-blaster-1047

我正在尝试向iFrame发布消息:

var gameIframe = $("#GameFrame");
gameIframe.get(0).contentWindow.postMessage("screenshot", "");

但这引发了错误:

  

Uncaught SyntaxError:无法在'Window'上执行'postMessage':调用'postMessage'时无效的目标原点'。

其他尝试:

postMessage("screenshot", "https://127.0.0.1");
  

无法在'DOMWindow'上执行'postMessage':提供的目标原点('https://127.0.0.1')与收件人窗口的原点('null')不匹配。

如何在iFrame上发布消息?

2 个答案:

答案 0 :(得分:3)

现在就想出来,需要使用*作为原点:

gameIframe.get(0).contentWindow.postMessage("screenshot", "*");

答案 1 :(得分:1)

当我在本地(在本地目录中)运行代码时遇到此错误,但是当我将其放在Web服务器(Tomcat)中时,代码起作用了。