25% off ProSNIPC25OFF

Logout Confirmation Prompt

Intercepts clicks on logout links site-wide and shows a browser confirm dialog before completing the sign-out request.

JavaScriptby SnipCraft
js
(function () {
    'use strict';

    document.addEventListener('DOMContentLoaded', function () {
        function attachLogoutConfirm() {
            var links = document.querySelectorAll('a[href*="action=logout"]');
            links.forEach(function (link) {
                if (link.dataset.scseedConfirm) return; // already wired
                link.dataset.scseedConfirm = '1';
                link.addEventListener('click', function (e) {
                    if (!window.confirm('Are you sure you want to log out?')) {
                        e.preventDefault();
                    }
                });
            });
        }

        attachLogoutConfirm();

        // Re-run if new logout links are injected after page load (e.g. AJAX nav).
        if (typeof MutationObserver !== 'undefined') {
            var observer = new MutationObserver(attachLogoutConfirm);
            observer.observe(document.body, { childList: true, subtree: true });
        }
    });
})();
#confirmation#javascript#logout#users#ux