Bir ASP.NET ve AJAX uygulamasının bir tarayıcı penceresini kapatın

oy
1

Ne sunucu tarafı çalıştırıldıktan sonra bir AJAX ASP.NET uygulamasının bir tarayıcı penceresini kapatmak için en iyi yoldur.

Bunu buldum çözümü , ancak ben tamamlamasını istediğim için biraz karmaşık görünüyor. Yoksa bu görevi başarmak için en iyi yoldur.

GÜNCELLEME: düğmeye basıldıktan sonra pencereyi kapatmak zorunda

GÜNCELLEME 1: Ben diğer SO sorudan çözüm çalıştı, ve benim için işe yaramadı.

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

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

Sayfamda aşağıdaki kodu kullanılır, ancak modül pencere açılır görüntülediğiniz web sayfası pencereleri kapatmak için çalışıyor.

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

Bunu önlemek için herhangi bir şekilde?

Oluştur 10/12/2008 saat 00:49
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
1

Aslında size düğme click olayı aşağıdaki kodu yerleştirerek yapabilirsiniz.

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!";                
    }
}
Cevap 10/09/2010 saat 15:36
kaynak kullanıcı

oy
1

Hayır, kullanıcının izni olmadan bir tarayıcı penceresini kapatmak için hiçbir yolu yoktur. Onların uygulamanın onları giriş yapabilirsiniz, ancak zorla tarayıcı penceresini kapatamaz.

Cevap 10/12/2008 saat 03:23
kaynak kullanıcı

oy
0

komut uyarı önlemek için, bu kullanabilirsiniz:

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

Yani:

if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(upApproveRequest, typeof(string), "closeWindow", "window.open('', '_self', '');window.close();", true);
Cevap 14/02/2012 saat 20:43
kaynak kullanıcı

oy
-2

Hepsi bukadar. Sadece kullanabilirsinizScriptManager.RegisterStartupScript(...)

Cevap 10/12/2008 saat 00:53
kaynak kullanıcı

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