Salin kode kode sebagai berikut:
// function window.onunload () {alert ('Ini yang ingin Anda lakukan, lakukan setelah menutup halaman web!');
// function window.onbeforeunload () {alert ('Ini yang ingin Anda lakukan, lakukan sebelum menutup halaman web! ")}
function window.onunload () {
If (window.screenleft> = 10000 && window.screentop> = 10000) || event.altkey) {
peringatan (window.screenleft+","+window.screentop);
// tindakan yang perlu dipicu saat pengguna perlu ditutup secara normal
lokasi = 'handler1.ashx';
}
}
</script>
Handler1.ashx:
Salin kode kode sebagai berikut:
menggunakan sistem;
menggunakan system.collections.gneric;
menggunakan System.linq;
menggunakan System.web;
menggunakan System.Web.Services;
menggunakan System.Web.SessionState;
Namespace WebApplication1
{{
/// <summary>
/// $ codebehindclassname $ Ringkasan Deskripsi
/// </summary>
[WebService (namespace = "http://tempuri.org/")]]
[WebServiceBinding (conformSto = wsiprofiles.basicprofile1_1)]]
Handler kelas publik1: ihttphandler, IrequiressiessionState
{{
Public Void ProcessRequest (konteks httpcontext)
{{
Context.Response.ContentType = "Teks/Polos";
Context.Session.abandon ();
Context.Session.Clear ();
}
BOOL PUBLIK ISREUSABLE
{{
mendapatkan
{{
Mengembalikan false;
}
}
}
}
menjelaskan:
Formulir anggota umum dari seorang anggota akan membuat sesi atau cookie setelah login anggota, dan kemudian Anda perlu keluar dari koneksi atau keluar di yang baru baru yang baru. Ketika anggota secara langsung menutup jendela, serangkaian keluar yang melibatkan keluar tidak memicu. Dan ini akan dihapus sampai sesi server berakhir.
Untungnya, saya akhirnya menemukan cara untuk menangkap pengguna menggunakan ALT+F4, bilah judul, klik kanan, ganda -klik judul bilah, dan tekan tombol penutupan secara langsung. Tentu saja, itu tidak dapat ditangkap untuk minimalisasi ke taskbar.
Salin kode kode sebagai berikut:
<bahasa skrip = "javascript">
<!-
function window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
// tindakan yang perlu dipicu saat pengguna perlu ditutup secara normal
}
}
->
</script>
menjelaskan:
Window.screenlect = 10000 + lebar perbatasan (2 × 2) = 10004
Window.screntop = 10000 + toolbar tinggi + judul bar tinggi = 10097
Harus dijelaskan bahwa properti koordinat ini di layar di Onbeforeunload adalah nilai normal.
Screenleft: Dapatkan koordinat x dari sudut kiri atas area klien browser relatif terhadap sudut kiri atas layar.
Screentop: Dapatkan koordinat Y dari sudut kiri atas area klien browser dibandingkan dengan sudut kiri atas layar.
Saya kira nilai khusus akan dihasilkan saat jendela dihancurkan. Dalam keadaan normal, nilainya tidak akan melebihi nilainya.
Masalahnya sekarang adalah bahwa menggunakan window.location di Onbeforeunload biasanya dapat mengirimkan permintaan ke URL yang ditentukan, tetapi metode tersebut tidak dapat dieksekusi secara efektif dalam acara Onunload. Solusinya adalah membuka jendela baru untuk menutupnya.
Kita dapat menulis kata -kata seperti itu alih -alih serangkaian window.location. Karena situs web portal melibatkan banyak server situs web silang -server. Setelah keluar dari pintu masuk terpadu, Anda perlu keluar untuk mencapai efek yang diharapkan dari portal.
var newwindow;
Window.opner = null;
newWindow = window.open (url, pagename, 'height = 0, width = 0');
newwindow.opner = null;
newwindow.close ();
Nympho
Segmen kode ini telah diuji. Onbeforeunload adalah peristiwa yang akan dipicu halaman sebelum uninstallasi.
Penghapusan SO yang pada dasarnya adalah halaman yang membuat fungsi keluar langsung dengan membuka jendela baru. Mungkin dijeda selama satu atau dua detik ketika dipanggil, atau menutup jendela pada halaman keluar khusus. Halaman keluar secara normal dan memotong kembali ke beranda.
[Catatan] Jika Anda tidak menilai di Window.onunload, Anda akan memicu acara tersebut jika Anda tidak menilai halaman Refresh. Oleh karena itu, perlu untuk menilai dan menangkap operasi tertentu untuk memblokir beberapa operasi normal.
Kontinu: Cara menghapus sesi sebelum pengguna menutup jendela secara langsung
Kemarin, saya menjelaskan implementasi implementasi, tetapi dalam operasi yang sebenarnya, ditemukan bahwa penundaan harus ditambahkan untuk memastikan bahwa program dapat dieksekusi secara normal. Detail implementasi dilampirkan di bawah ini, dan fungsi penundaan waktu yang sederhana dilampirkan. Kode telah diuji.
Salin kode kode sebagai berikut:
<bahasa skrip = "javascript">
Function window.onunload ()
{{
var newwindow;
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
newwindow = window.open ('alamat program keluar', 'nama webpage',
'Width = 0, Tinggi = 0, Top = 4000, Kiri = 4000');
newwindow.opner = null;
Tidur (5000);
newwindow.close ();
}
}
Fungsi Tidur (Milisecond)
{{
var currentDate, begindate = new date ();
Var beginhour, beginminute, dimulai, beginm;
Var jam, minutegaps, detik, msgaps, celah;
beginhour = begindate.gethouse ();
beginMinute = begindate.getMinutes ();
startecond = beginindate.getSeconds ();
beginMs = beginDate.getMilliseconds ();
MELAKUKAN
{{
CurrentDate = new date ();
hourgaps = currentDate.getHours () -beginhour;
minuteGaps = currentDate.getMinutes () -beginminute;
SecondGaps = currentDate.GetSeconds () -Beginsecond;
msgaps = currentDate.getMilliseconds () -beginms;
if (hourgaps <0) Hourgaps+= 24;
Kesenjangan = jam kerja*3600+ minutegaps*60+ detik;
kesenjangan = celah*1000+msgaps;
} While (gaps <milisecond);
}
</script>
Kedua, saat jendela dimuat atau keluar, jika Anda ingin menyegarkan browser, Anda dapat mengoperasikan yang berikut:
<type skrip = "text/javascript" bahasa = "javascript">
Window.opent.document.location.reload ();
</script>
<boey hanya = "opener.location.reload ();"> Refresh saat membuka jendela
<body onunload = "opener.location.reload ();"> Refresh