0

私のメインアプリページであるDefault.aspxから、別のページをポップアップ表示していwindow.openます。そのページにはHyperLink、関数を呼び出すホームリンクがありJavascriptます。

<asp:HyperLink id="lnkHome" runat="server" meta:resourcekey="lnkHome" NavigateUrl = " " onclick = "javascript:performRedirect()">

親ウィンドウがまだ実行されているかどうか、そしてこのウィンドウを閉じているだけかどうかを確認しています。そうでない場合は、メインウィンドウにリダイレクトします。

function performRedirect() {
    if (parentExists()) {

        $("a[id$= lnkHome]").attr('href', 'window.close();');
    }
    else {

        $("a[id$= lnkHome]").attr('href', 'Default.aspx');
    }
}
function parentExists() {

    return (window.parent.location === window.location) ? false : true;
}

動作しますが、何らかの理由でチェックが失敗し、Default.aspx呼び出しページがまだ開いている場合でも常にリダイレクトされます。ここで何を変更する必要がありますか?残念ながら、私はHyperLinkコントロールを使用する必要があります。ASP.NET4.0を使用しています

4

1 に答える 1

0

を使用してウィンドウを開いているので、window.opener代わりにチェックしますwindow.parentwindow.open

あなたのparentExistis関数はこれになります:

function parentExists() { 
    return window.opener!==null;
}

または...

function parentExists() { 
    return window.opener!==null && window.opener.location.href===window.location.href;
}
于 2012-09-17T16:43:58.647 に答える