我正在动态地将"name=true"属性添加到iframe。收到错误"无法读取未定义的属性'postMessage'" 但它使用相同的控制台工作正常" window.iframe.true "
更新:"赢"返回未定义
<iframe src="crossdomain.com" id="iframe"></iframe>
<script>
var win = window.iframe.nametrue;
win.postMessage("statusPause", "othersite.com");
</script>
我无法理解这个"名称"。然而。这至少应该解决未定义的问题。
var win = document.getElementById('iframe');
win.contentWindow.postMessage("statusPause", "othersite.com");
正如你在这里看到的 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage帖子消息需要有效的目标窗口。你的"window.iframe.nametrue"没有针对任何目标,即使如此。它可能不是预期的有效目标窗口。我使用 getElemenetById 获得了 iframe,并在我得到的 iframe 上称为"contentWindow",这将根据需要返回一个有效的 targetWindow
您需要在将获胜分配给 iframe 之前分配属性name="nametrue"
。