Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://xxx.cn') does not match the recipient window's origin ('null').

使用event.source作为回信对象
具体参见:https://developer.mozilla.org...

//当A页面postMessage被调用后,这个function被addEventListenner调用
function receiveMessage(event)
{
  // 我们能信任信息来源吗?
  if (event.origin !== "http://example.com:8080")
    return;

  // event.source 就当前弹出页的来源页面
  // event.data 是 "hello there!"

  // 假设你已经验证了所受到信息的origin (任何时候你都应该这样做), 一个很方便的方式就是把enent.source
  // 作为回信的对象,并且把event.origin作为targetOrigin
  event.source.postMessage("hi there yourself!  the secret response " +
                           "is: rheeeeet!",
                           event.origin);
}

window.addEventListener("message", receiveMessage, false);
  • 答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

otherWindow.postMessage(message, targetOrigin, [transfer]);
otherWindow:其他窗口的一个引用,比如iframe的contentWindow属性、执行window.open返回的窗口对象、或者是命名过或数值索引的window.frames。
otherWindow不能是当前窗口哦
参见MDN

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐