2017-02-19 5 views
0

私の問題は、アップデートパネルのボタンをクリックして "beforeunload"イベントが発生しないウィンドウを閉じた後です。 は、ここに私のコードです: javascript "beforeunload"イベントは、アップデートパネルを使用すると起動しません。

function dontlogout() //for postback refreshes 
{ 
    postback = true; 
    alert(postback); 
} 
$(window).bind('beforeunload',function() { 

    if(postback==false) 
    { 
     //my logout code here; 

    } 

    else 
    { 
     postback = false; 
    } 
    }); 
<asp:Button runat="server" ID="cmdOut" OnClientClick="dontlogout();" Text="next" OnClick="cmdOut_Click"></asp:Button> 

<asp:UpdatePanel runat="server" ID="updQuestion" > 
    <ContentTemplate>       
<asp:Button runat="server" ID="cmdNext" OnClientClick="dontlogout();"  Text="next" OnClick="cmdNext_Click"></asp:Button> 

</ContentTemplate></asp:UpdatePanel> 

私は更新パネルでcmdNextをクリックして、私のログアウトのコードが実行しないブラウザを閉じたときに、私はCMDOUTボタン問題はないとするときに近いブラウザが実行されたコードをログアウトマイ]をクリックしますが、


この問題を解決するにはどうすればよいですか?

+0

可能な重複がないwindow.onbeforeunload作業](http://stackoverflow.com/questions/7255649/window-onbeforeunload-not-working) –

答えて

0

あなただけの更新パネルの終了タグの前に「トリガ」のタグを追加onbeforeunload

$(window).bind('beforeunload',function() { 

    if(postback==false) 
    { 
     //my logout code here; 

     // Ok you can leave because you dont return 
    } 

    else 
    { 
     postback = false; 
     return "You cannot leave"; // You cannot leave 
    } 
    }); 
+0

それは私の問題は解決されていませんが、ウィンドウの表示を確認してください – saeid6366

0

の関数コールバックに返却する必要があり

<asp:UpdatePanel runat="server" ID="updQuestion" > 
    <ContentTemplate>       
<asp:Button runat="server" ID="cmdNext" OnClientClick="dontlogout();"  Text="next" OnClick="cmdNext_Click"></asp:Button> 

</ContentTemplate> 
<Triggers> 
     <asp:PostBackTrigger ControlID="cmdNext" /> 
    </Triggers> 
</asp:UpdatePanel> 
[の
関連する問題