Javascript 当数据来自其他域时,使用window.open从父窗口向弹出窗口发送数据
我尝试使用以下方法将一些数据从父窗口发送到弹出窗口:Javascript 当数据来自其他域时,使用window.open从父窗口向弹出窗口发送数据,javascript,window.open,Javascript,Window.open,我尝试使用以下方法将一些数据从父窗口发送到弹出窗口: const mywindow = window.open(RE_SID_URL,"toolbar=no,location=no,status=no,menubar=0,resizable=1,left=400,width=500"); mywindow.myName = "myname". 但是在弹出窗口中,它没有在窗口对象中设置,在弹出窗口中访问window.opener会显示此错误: 异常:Do
const mywindow = window.open(RE_SID_URL,"toolbar=no,location=no,status=no,menubar=0,resizable=1,left=400,width=500");
mywindow.myName = "myname".
但是在弹出窗口中,它没有在窗口对象中设置,在弹出窗口中访问window.opener会显示此错误:
异常:DomeException:阻止具有原点的帧访问跨原点帧。在invokeGetter(:1:142)。
我做错了什么,谢谢你的帮助。我正在访问一个不同的主机,但弹出窗口中的域是相同的。当您遇到域问题并且想要通信时,请发送消息
/* the "Server" */
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
// ... security check
if (event.origin !== "http://example.org:8080")
return;
// ... process message
}
...
/* the "Client" */
targetWindow = window.opener;
// or targetWindow = HTMLIFrameElement.contentWindow;
// or targetWindow = window.open(RE_SID_URL, ...)
targetWindow.postMessage("some message", "*");
// or targetWindow.postMessage( {"data":2, "msg":"something"} , "*");
请注意缺少的
name
参数,它应该是open
的第二个参数。