我正在尝试使用以下JavaScript检查弹出页面是否仍处于打开状态。
父页面(调用页面以打开弹出窗口)已打开,但此代码仍然失败。我从一个aspx弹出页面调用它,该弹出页面在另一个母版页中有一个母版页。因此,最终调用此脚本的click事件是Gridview中内容占位符中的Edit Link,该占位符位于最上面的母版页内容占位符中,不确定这是否与其有关。该脚本将触发,但它不会看到父页面处于打开状态且未关闭。
if (window.opener != null && !window.opener.closed) {
alert(window.opener);
var val = window.opener.parentFunc(a);
alert(a);
} 这是IE独有的问题,火狐可以识别window.opener页面。尝试了IE的多个版本都有问题,虽然Firefox和Opera可以工作。
我实际上使用了这个警告语句...
alert(window.opener);在IE中返回未定义。
在火狐中返回ObjectWindow。
发布于 2011-10-06 20:55:48
我像这样从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这不完全是我想要的,但它似乎可以工作,除了现在弹出页面不在顶部。需要弄清楚这部分。
我一直在尝试应用焦点,但似乎不起作用。此外,我尝试了一个非模态弹出窗口,它可以工作,但我失去了对打开的窗口的引用。
发布于 2011-10-04 21:08:30
我相信这是IE的安全限制。看看这个帖子,看看它是否回答了你的问题:
http://social.msdn.microsoft.com/Forums/en/iewebdevelopment/thread/0c014e78-8d35-4df3-93da-7f6a30b4ed8b
发布于 2017-05-12 13:57:38
function getParentWindow(){
var father = window.opener;
if(father == undefined) {
father=window.dialogArguments
}
return father;
}https://stackoverflow.com/questions/7648231
复制相似问题