3

我正在尝试使用此 javascript 从子页面重定向到父页面:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Close", "ClosePopUp();", true); 


<script language="javascript" type="text/javascript">
    function ClosePopUp() {
        window.opener.location= 'ParentPage.aspx';
        self.close();
    }

</script>

它适用于 Firefox 和 Chrome。但不是 IE 9。我得到的错误是:

Unable to get value of the property 'location': object is null or undefined

alert(window.opener)null在 IE 9 中返回。

4

3 回答 3

2

经过一段时间的搜索,我找到了 Internet Explorer 的解决方案。你需要使用

window.opener.location.href='';

于 2012-12-11T15:49:45.677 回答
1

window.opener是非标准属性,并非在所有浏览器中都可用。它还将评估null该窗口是否不是从另一个窗口打开的,因此它看起来非常不可靠。

于 2012-11-20T13:32:19.893 回答
0

我认为您可以使用 window.open

window.open(URL,name,specs,replace)

更多信息在这里

更新

我想我现在明白了。在您的父窗口中添加一个事件处理程序到您孩子的卸载事件。

var win = window.open("ChildPage.aspx");

function popUpUnLoaded() {
    window.location = "ParentPage.aspx";
}

if (typeof win.attachEvent != "undefined") {
    win.attachEvent("onunload", popUpUnLoaded );
} else if (typeof win.addEventListener != "undefined") {
    win.addEventListener("unload", popUpUnLoaded, false);
}

这意味着当下面的函数执行时,您的父页面会启动它。

function ClosePopUp() {
    self.close();
}
于 2012-11-20T13:36:48.930 回答