IE中带有window.opener的JavaScript问题

IE中带有window.opener的JavaScript问题,javascript,internet-explorer,Javascript,Internet Explorer,我试图使用下面的JavaScript检查弹出页面是否仍然打开 父页面(调用页面打开弹出窗口)已打开,但此代码继续失败。我从一个aspx弹出页面调用它,该页面在另一个母版页中有一个母版页。因此,最终调用此脚本的单击事件是Gridview中内容占位符中的编辑链接,该占位符位于最上面的母版页内容占位符中,不确定这是否与此有关。脚本将激发,但不会将父页面视为打开或未关闭 if (window.opener != null && !window.opener.closed) {

我试图使用下面的JavaScript检查弹出页面是否仍然打开

父页面(调用页面打开弹出窗口)已打开,但此代码继续失败。我从一个aspx弹出页面调用它,该页面在另一个母版页中有一个母版页。因此,最终调用此脚本的单击事件是Gridview中内容占位符中的编辑链接,该占位符位于最上面的母版页内容占位符中,不确定这是否与此有关。脚本将激发,但不会将父页面视为打开或未关闭

if (window.opener != null && !window.opener.closed) { 
    alert(window.opener); 
    var val = window.opener.parentFunc(a); 
    alert(a); 
} 
这是一个仅限于IE的问题,Firefox可以识别
window.opener
页面。尝试了多个版本的IE都有问题,不过Firefox和Opera都能正常工作

我实际上使用了这个警告语句

alert(window.opener);
在IE中,返回未定义


在Firefox返回的ObjectWindow中。

我认为这是IE中的一个安全限制。请查看此线程,看看它是否解决了您的问题:


我通过从VB.net发送脚本来实现这一点,就像这样

Dim BrowserSettings As String = "status=no,toolbar=no, scrollbars =yes,menubar=no,location=no,resizable=no," & "titlebar=no, addressbar=no, width=650 ,height=800"
Dim URL As String = "testNewPage.aspx"
Dim scriptText1 As String = ("<script>javascript: var w = window.open('" & URL & "','_blank','" & BrowserSettings & "'); </script>")
ScriptManager.RegisterStartupScript(Me, GetType(Page), "ClientScript1", scriptText1, False)here
Dim Browser设置为String=“状态=否,工具栏=否,滚动条=是,菜单栏=否,位置=否,可调整大小=否,”&“标题栏=否,地址栏=否,宽度=650,高度=800”
Dim URL为String=“testNewPage.aspx”
Dim scriptText1作为字符串=(“javascript:var w=window.open”(“&URL&“,”空白“,“&BrowserSettings&“);”)
RegisterStartupScript(Me,GetType(第页),“ClientScript1”,scriptText1,False)
这并不完全是我想要的,但它似乎正在工作,除非现在弹出页面不在顶部。我需要弄清楚那部分

我一直在尝试集中注意力,但似乎不起作用。
另外,尝试了一个modales弹出窗口,它可以工作,但我失去了对打开窗口的引用。

Java与Javascript不同。你需要修复你的标签。加勒特,谢谢你的链接。即使在安全性更改之后,window.opener的值在第一个警报中仍然返回为未定义。您好,欢迎使用SO!虽然代码本身可以说明问题,但提供一些细节将有助于提高答案的质量!
function getParentWindow(){
    var father = window.opener;
    if(father == undefined) {
       father=window.dialogArguments
    }

    return father;  
}