我打开一个窗口使用
window.open();
在该窗口上处理后,我想使用以下方法将数据写入父窗口元素:
var html_high = '<img width="600" src="assets/images/abc.jpg" alt="Image">';
var high = window.opener.parent;
$('#image_area',high.document).html(html_high);
$('#image_area',high.document).html(html_high);
这不起作用,仅在 Microsoft Edge 40.15063.0.0 中的控制台中出现错误:
"SCRIPT65535: Invalid argument"
以上代码适用于所有浏览器,包括 IE 11、10、9、chrome、mozilla 和 safari。
最佳答案
这是 MS Edge 的一个已知问题。 您可以尝试存储对新打开窗口的引用并尝试将其注销以查看是否有其他属性具有您正在寻找的内容。 我没有看到真正的解决方法。 https://connect.microsoft.com/IE/feedback/details/828050/ie-11-when-opening-a-new-window-from-another-window-opener-is-undefined
MDN的解释:
当从另一个窗口打开一个窗口时(使用 Window.open 或带有其目标属性集的链接),它维护对第一个窗口的引用作为 window.opener。如果当前窗口没有打开器,则此方法返回 NULL。
Windows Phone 浏览器不支持 window.opener(使用 Microsoft Edge 25.10586.36.0 测试)。如果开启器位于不同的安全区域,则 IE 也不支持它。
在某些浏览器中,原始 anchor 标记上的 rel="noopener"属性将阻止设置 window.opener 引用。
关于javascript - window.opener.parent 在 Microsoft Edge 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470316/