我试图使用
从我的child.jsp获取值到我的parent.jspvar myvalue = window.opener.document.getElementById(“parentId1”)
即使在控制台中找不到任何错误,该值也不会进入父页面。
子弹出窗口的网址开头为https://host.example.com:7001/...
..并且父网页网址不同,以http://anotherhost:8080/webapp
开头....在与子窗口进行通信时是否存在任何问题父页面在另一台服务器上?
如果是,我该如何解决这个问题?
答案 0 :(得分:4)
...与子窗口和另一台服务器上的父页面通信有什么问题吗?
是的,浏览器执行Same Origin Policy。
会阻止这种情况如果您控制两台服务器,请查看使用Cross Origin Resource Sharing。
或者,如果您控制页面上的JavaScript代码而不是服务器(或者只是您喜欢这种机制),则可以使用postMessage
将消息从一个窗口发送到另一个窗口。您无法像在代码段中那样直接访问其他窗口的元素,但这两个页面可以合作以将相关值从一个页面传递到另一个页面,甚至是跨页面。有关postMessage
的更多信息:MDN | Spec
除非您可以使用CORS或postMessage
,否则我认为您不能在客户端执行此操作;你需要一个代理。