当我尝试从弹出窗口访问“父窗口”的元素时,我将window.opener
视为未定义。
var opener = window.opener;
if(opener)
{
console.log("opener element found");
var elem = opener.$('.my-parent-element');
if (elem) {
console.log("parent element found");
elem.show();
}
}
此处opener
未定义。难道我做错了什么?
我已尝试parent.window.opener
/ window.top
/ window.top.document.body
等,但它也无济于事。它在其他浏览器中运行良好。
我看到问题Window Opener Alternative,但我无法立即更改showModalDialog
打开弹出框。可能,这将是最后的选择。
答案 0 :(得分:18)
我遇到了同样的问题,这是由于Internet Explorer安全选项, 特别是因为我的弹出窗口是外部网站(Internet区域),而父级是内部页面(Intranet区域)。 “保护模式”仅针对“Internet”激活。 我为“本地内联网”激活它,现在它可以工作。
要在IE中找到此选项:
答案 1 :(得分:5)
如果使用的浏览器是IE,您可以使用showModalDialog
函数并将参数传递给它。只需将window
对象作为参数传递。
之后,您可以使用dialogArguments
从模态窗口访问参数。
更多详情可在此处的文档中找到:http://msdn.microsoft.com/en-us/library/ms533723%28VS.85%29.aspx
检索示例:
window.showModalDialog(theURL, window);
//in the modal dialog you can use this to retrieve the window.
var openerWindow = window.dialogArguments;