Jak zabránit uživatelům v zavření okna v Javascriptu?

Je možné zablokovat uživatele v zavření okna pomocí tlačítka pro ukončení [X] ? Ve skutečnosti poskytuji uživatelům na stránce tlačítko pro zavření okna. V podstatě se snažím donutit uživatele, aby vyplnili formulář a odeslali jej. Nechci, aby zavřeli okno, dokud ho neodešlou.

Velmi si vážím vašich komentářů, neuvažuji o hostování na žádném komerčním webu. Je to interní věc, ve skutečnosti přimějeme všechny zaměstnance, aby se zúčastnili tohoto průzkumu, který jsme navrhli….

Vím, že to není správná cesta, ale zajímalo by mě, jestli existuje řešení problému, který tu máme…

Odpověď

Podívejte se na onBeforeUnload .

Nenutí někoho zůstat, ale vyzve ho, aby se ho zeptal, zda opravdu chce odejít, což je pravděpodobně nejlepší řešení pro různé prohlížeče, které můžete spravovat. (Podobné jako na tomto webu, pokud se pokusíte odejít uprostřed odpovědi.)

<script language="JavaScript">
    window.onbeforeunload = confirmExit;
    function confirmExit() {
        return "You have attempted to leave this page. Are you sure?";
    }
</script>

Upravit:Většina prohlížečů již neumožňuje vlastní zprávu pro onbeforeunload .

Podívejte se na toto hlášení o chybě z 18. února 2016.

Dialogová okna onbeforeunload se na moderním webu používají ke dvěma věcem:
1. Zabránění uživatelům v nechtěné ztrátě dat.
2. Podvádění uživatelů.

Ve snaze omezit jejich použití pro posledně jmenované a nezastavit to první, nebudeme zobrazovat řetězec poskytnutý webovou stránkou. Místo toho použijeme obecný řetězec.

Firefox to již dělá[…]