Como mostrar o “Você tem certeza de que deseja navegar para fora desta página?” Quando as alterações forem confirmadas?

Aqui no stackoverflow, se você começou a fazer alterações, então você tenta navegar para fora da página, um botão de confirmação do javascript aparece e pergunta: "Você tem certeza que quer sair dessa página?" blee blah bloo ...

Alguém já implementou isso antes, como eu rastreio que as alterações foram confirmadas? Eu acredito que eu poderia fazer isso sozinho, estou tentando aprender as boas práticas de vocês, os especialistas.

Eu tentei o seguinte, mas ainda não funciona:

<html>
<body>
    <p>Close the page to trigger the onunload event.</p>
    <script type="text/javascript">
        var changes = false;        
        window.onbeforeunload = function() {
            if (changes)
            {
                var message = "Are you sure you want to navigate away from this page?\n\nYou have started writing or editing a post.\n\nPress OK to continue or Cancel to stay on the current page.";
                if (confirm(message)) return true;
                else return false;
            }
        }
    </script>

    <input type='text' onchange='changes=true;'> </input>
</body>
</html>

Alguém pode postar um exemplo?

questionAnswers(17)

yourAnswerToTheQuestion