كيف يمكن اظهار نافذة تأكيد الخروج من الصفحه

كيف يمكن برمجة اظهار نافذه تأكيد الخروج عندما يقوم الزائر بالضغط على زر الرجوع في جهازه اللوحي او الكمبيوتر، بلغة الجافا سكربت، وماهو الحدث الخاص بالضغط على زر الرجوع

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

بشكلها البسيط يمكنك عمل ذلك عن طريق الإستفادة من حدث onbeforeunload، يكون ذلك كالتالي:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>مثال تأكيد</title>
</head>
<body>
    <script>
        window.onbeforeunload = function(){
          return 'هل تود فعلا الخروج؟';
        };
    </script>
</body>
</html>

كما يمكنك الإستفادة مما تقدمه مكتبة sweetAlert لعمل مربعات حوار منسقة وأكثر تفاعلية

مثال عن الرسائل التأكيدية التي يقوم بعرضها :

توثيق المكتبة :

لم يشتغل اخي

هل يظهر لديك أي تنبيه أو رسالة خطأ؟ يحتمل أنك لم تقم بإستدعاء الحدث على نحو صحيح

يمكنك تجريب أحد هذه الحلول

الأول:

الحدث popstate

window.addEventListener('popstate', function(event) {
    //  في كل مرة يتم تغيير تاريخ التصفح
    // رسالة التأكيد
    var r = confirm("You pressed a Back button! Are you sure?!");

    if (r == true) {
        // في حال موافقة المستخدم نضغط زر الرجوع برمجياً
        history.back();
        // أزل تعليق السطر التالي
        // window.location = document.referrer // العودة للصفحة السابقة.
    } else {
        // البقاء في هذه الصفحة.
        history.pushState(null, null, window.location.pathname);
    }

    history.pushState(null, null, window.location.pathname);

}, false);

ثانياً:

window.onhashchange = function() {
    if (!!window.innerDocClick) {
        // تم النقر على زر الرجوع
    } 
}

جرب هذا

window.onbeforeunload = function (e) {
    e.preventDefault();
    return false;
};

سيظهر رسالة

Changes you made may not be saved.

لا يمكن تغيير هذه الرسالة في chrome

المصدر

وأيضا لا يمكن إستخدام مكتبة sweetAlert في هذه الحالة