Zamknij okno przeglądarki z aplikacji ASP.NET i AJAX

głosy
1

Jaki jest najlepszy sposób, aby zamknąć okno przeglądarki z aplikacji ASP.NET AJAX po stronie serwera został wykonany.

Znalazłem rozwiązanie , ale wydaje się nieco skomplikowane dla co chcę osiągnąć. Czy jest to najlepszy sposób, aby wykonać swoje zadanie.

UPDATE: muszę zamknąć okno po naciśnięciu przycisku

UPDATE 1: Próbowałem roztwór z drugiej pytanie SO, i to nie dla mnie.

<asp:Button ID=btnMyButton runat=server onClick=btnMyButton_Click />

protected void btnMyButton_Click(object sender, EventArgs e)
{
}

Użyłem następujący kod w mojej strony, ale „Na stronie przeglądania próbuje zamknąć okna” okno moduł odskoczy.

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
            ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), closeWindow, window.close();, true);

Każdy sposób, aby temu zapobiec?

Utwórz 10/12/2008 o 00:49
źródło użytkownik
W innych językach...                            


4 odpowiedzi

głosy
1

Właściwie można to zrobić poprzez umieszczenie następujący kod w przypadku kliknięcia przycisku.

protected void btnMyButton_Click(object sender, ImageClickEventArgs e)
{
    // Update database
    bool success = Presenter.DoDatabaseStuff();

    if (success)
    {
        // Close window after success
        const string javaScript = "<script language=javascript>window.top.close();</script>";
        if (!ClientScript.IsStartupScriptRegistered("CloseMyWindow"))
        {
            ClientScript.RegisterStartupScript(GetType(),"CloseMyWindow", javaScript);
        }
    }
    else
    {
        // Display failure result
        result_msg_area.Visible = true;
        lblError.Text = "An error occurred!";                
    }
}
Odpowiedział 10/09/2010 o 15:36
źródło użytkownik

głosy
1

Nie, nie ma sposobu, aby zamknąć okno przeglądarki bez zgody użytkownika. Możesz zalogować się je z ich stosowania, ale nie można przymusowo zamknąć okno przeglądarki.

Odpowiedział 10/12/2008 o 03:23
źródło użytkownik

głosy
0

Aby uniknąć ostrzeżenia skryptu, można użyć to:

window.open('', '_self', '');window.close();

Więc:

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.open('', '_self', '');window.close();", true);
Odpowiedział 14/02/2012 o 20:43
źródło użytkownik

głosy
-2

To dość dużo. można po prostu użyćScriptManager.RegisterStartupScript(...)

Odpowiedział 10/12/2008 o 00:53
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more