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)nullIE 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 に答える