اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

لفعل ذلك يجب عليك معالجة الحدث beforeunload في window:

function onBeforeUnload(e) {
    if (thereAreUnsavedChanges()) {
        e.preventDefault();
        e.returnValue = '';
        return;
    }

    delete e['returnValue'];
}

window.addEventListener('beforeunload', onBeforeUnload);

بالنسبة لـthereAreUnsavedChanges() فهذه دالّة يجب عليك برمجتها لتوافق الشرط الذي تريد عنده منع المستخدم من مغادرة الصفحة.

لكن للأسف، في المتصفّحات الجديدة، لا يمكن تعديل النص الذي يظهره المتصفّح للمستخدم, نصّ التأكيد يختاره المتصفّح نفسه. لكن ما يمكنك فعله هو إظهار الرسالة على الصفحة مباشرة في من خلال الدالّة السابقة.

يمكن الإطلاع أكثر عن كيفية معالجة هذا الحدث من توثيق شبكة موزيلا للمطورين:

https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event

 

 

  • 0
نشر

يمكنك الاستماع للحدث beforeunload للقيام بأي أكشن قبل مغادرة المستخدم الصفحة، 

قبل ذلك ستحتاج تعطيل السلوك الافتراضي لهذا الحدث، ثم القيام بذلك بشكل مخصص. إليك مثالا: 

window.addEventListener('beforeunload', function (e) {
    e.preventDefault();
    e.returnValue = '';
    return '';
});

function confirmExit() {
    return confirm("اذا غادرت الصفحة لن يتم حفظ البيانات. هل ترغب في المغادرة؟");
}

أو نحوه: 

<body onbeforeunload="return confirmExit()">

الأحداث المتعلقة بدورة حياة صفحة HTML وكيفية التحكم بها عبر جافاسكربت

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...