نسخ رمز رمز على النحو التالي:
// function window.onunload () {Alert ('هذا ما تريد القيام به ، قم بذلك بعد إغلاق صفحة الويب!') ؛
// وظيفة window.onbeforeunload () {Alert ('هذا ما تريد القيام به ، افعل ذلك قبل إغلاق صفحة الويب! ")}
وظيفة window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
ALERT (window.screenleft+"،"+window.screentop) ؛
// الإجراء الذي يجب تشغيله عندما يحتاج المستخدم إلى إغلاقه بشكل طبيعي
الموقع = 'Handler1.Ashx' ؛
}
}
</script>
Handler1.Ashx:
نسخ رمز رمز على النحو التالي:
باستخدام النظام ؛
باستخدام system.collections.gneric ؛
باستخدام system.linq ؛
باستخدام system.web ؛
باستخدام system.web.services ؛
باستخدام System.Web.SessionState ؛
مساحة الاسم webapplication1
{{
/// <summary>
/// $ codeBeBeHindClassName $ وصف ملخص
/// </summary>
[WebService (NamePace = "http://tempuri.org/")]
[WebServiceBinding (contirmsto = wsiprofiles.basicprofile1_1)]
معالج الطبقة العامة 1: Ihttphandler ، IrequiressessionState
{{
Public Void ProcessRequest (سياق httpcontext)
{{
context.Response.contentType = "text/plain" ؛
context.session.abandon () ؛
context.session.clear () ؛
}
منطقي عام لا يمكن
{{
يحصل
{{
العودة كاذبة
}
}
}
}
يشرح:
سيقوم النموذج العام للعضو بإنشاء جلسة أو ملف تعريف ارتباط بعد تسجيل الدخول إلى العضو ، ثم تحتاج إلى الخروج من الاتصال أو الخروج من جديد جديد جديد جديد. عندما يغلق الأعضاء مباشرة من النافذة ، لم تؤد سلسلة من الخروج التي تنطوي على الخروج. وسيتم مسحها حتى تنتهي صلاحية جلسة الخادم.
لحسن الحظ ، وجدت أخيرًا الطريق لالتقاط المستخدمين باستخدام ALT+F4 ، وشريط العنوان ، وربط اليمين ، وربط شريط العنوان ، واضغط على زر الإغلاق مباشرة. بالطبع ، لا يمكن التقاطها لتقليل شريط المهام.
نسخ رمز رمز على النحو التالي:
<script language = "javaScript">
<!-
وظيفة window.onunload () {
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
// الإجراء الذي يجب تشغيله عندما يحتاج المستخدم إلى إغلاقه بشكل طبيعي
}
}
->
</script>
يوضح:
window.screenlect = 10000 + عرض الحدود (2 × 2) = 10004
window.screntop = 10000 + شريط أدوات مرتفع + شريط العنوان مرتفع = 10097
يجب أن يوضح أن خصائص الإحداثيات هذه في الشاشة في OnBeforeUnload هي قيم طبيعية.
ScreenLeft: احصل على إحداثيات X للركن الأيسر العلوي من منطقة عميل المتصفح بالنسبة إلى الركن الأيسر العلوي من الشاشة.
ScreentOp: احصل على إحداثيات Y من الركن الأيسر العلوي من منطقة عميل المتصفح مقارنة بالركن الأيسر العلوي من الشاشة.
أعتقد أنه سيتم إنشاء قيمة خاصة عند تدمير النافذة. في الظروف العادية ، لن تتجاوز القيمة القيمة.
المشكلة الآن هي أن استخدام window.location في OnBeOnload يمكن عادة إرسال الطلب إلى عنوان URL المحدد ، ولكن لا يمكن تنفيذ الطريقة بشكل فعال في حدث OnUnload. الحل هو فتح نافذة جديدة لإغلاقها.
يمكننا كتابة مثل هذه الكلمات بدلاً من سلسلة من النوافذ. التوظيف. لأن مواقع البوابة تتضمن خوادم موقع ويب متعددة المتقاطع. بعد الخروج من المدخل الموحد ، تحتاج إلى الخروج من أجل تحقيق التأثير المتوقع للبوابة.
var newwindow ؛
window.opner = null ؛
newWindow = window.open (url ، pagename ، 'height = 0 ، width = 0') ؛
newWindow.opner = null ؛
newWindow.close () ؛
Nympho
تم اختبار هذا الجزء من الكود. OnBeforeUnload هو حدث سيتم تشغيل الصفحة قبل إلغاء التثبيت.
الإزالة التي تسمى SO هي في الأساس الصفحات التي تجعل وظيفة الخروج مباشرة عن طريق فتح النافذة الجديدة. قد يتم إيقافه مؤقتًا لمدة ثانية أو ثانيتين عندما يتم استدعاؤه ، أو أغلق النافذة على صفحة خروج خاصة. تخرج الصفحة بشكل طبيعي وتتخلف عن الصفحة الرئيسية.
[ملاحظة] إذا لم تحكم في Window.onunload ، فستشعر بالحدث إذا لم تحكم على صفحة التحديث. لذلك ، من الضروري الحكم والتقاط عمليات محددة لمنع بعض العمليات العادية.
مستمر: كيفية مسح الجلسة قبل إغلاق المستخدم النافذة مباشرة
بالأمس ، شرحت تنفيذ التنفيذ ، ولكن في التشغيل الفعلي ، وجد أنه يجب إضافة التأخير للتأكد من أنه يمكن تنفيذ البرنامج بشكل طبيعي. يتم إرفاق تفاصيل التنفيذ أدناه ، ويتم إرفاق وظيفة تأخير الوقت البسيطة. تم اختبار الرمز.
نسخ رمز رمز على النحو التالي:
<script language = "javaScript">
وظيفة window.onunload ()
{{
var newwindow ؛
if (window.screenleft> = 10000 && window.screentop> = 10000) ||
{{
NewWindow = window.open ("عنوان برنامج الخروج" ، "اسم صفحة الويب" ،
"العرض = 0 ، الارتفاع = 0 ، أعلى = 4000 ، اليسار = 4000 ') ؛
newWindow.opner = null ؛
النوم (5000) ؛
NewWindow.close () ؛
}
}
وظيفة نوم (ميلي ثانية)
{{
var currentDate ، begindate = new date () ؛
var beginhour ، beginminute ، beginsecond ، exerms ؛
var hourgaps ، minutegaps ، secondgaps ، msgaps ، gaps ؛
BEGINHOUR = begindate.gethouse () ؛
beginminute = begindate.getMinutes () ؛
يبدأ = begindate.getSeconds () ؛
Qualms = begindate.getMillisEconds () ؛
يفعل
{{
CurrentDate = تاريخ جديد () ؛
hourgaps = currentDate.gethours () -beginhour ؛
minutegaps = currentDate.getMinutes () -beginMinute ؛
SecondGaps = currentDate.getSeconds () -beginsecond ؛
msgaps = currentDate.getMillisEconds () -beginms ؛
إذا (hourgaps <0) hourgaps+= 24 ؛
GAPS = Hourgaps*3600+ minutegaps*60+ secondgaps ؛
فجوات = فجوات*1000+msgaps ؛
} بينما (الفجوات <milisecond) ؛
}
</script>
ثانياً ، عند تحميل النافذة أو الخروج منها ، إذا كنت ترغب في تحديث المتصفح ، يمكنك تشغيل ما يلي:
<script type = "text/javaScript" language = "javaScript">
window.opent.document.location.reload () ؛
</script>
<boey only = "emply.location.reload () ؛"> تحديث عند فتح النافذة
<body OnUnload = "Opener.location.reload () ؛"> تحديث