我正在尝试使用以下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中返回Undefined。
在Firefox中返回了ObjectWindow。
答案 0 :(得分:0)
我认为这是IE中的安全限制。看看这个帖子,看看它是否能解决你的问题:
答案 1 :(得分:0)
我通过从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
这不是我想要的,但它似乎正在工作,除了现在弹出页面不在顶部。需要弄清楚那部分。
我一直在尝试应用焦点,似乎没有用。 另外,尝试了一个modaless弹出窗口,但是我失去了对打开窗口的引用。
答案 2 :(得分:0)
function getParentWindow(){
var father = window.opener;
if(father == undefined) {
father=window.dialogArguments
}
return father;
}