Comment prévenir la fenêtre.onbeforeunload événement qui a été déclenché par le bouton et les liens des événements

Mon formulaire contient plusieurs boutons et des liens hypertexte et je veux afficher une alerte sur le bouton retour du navigateur.
J'ai utilisé le code ci-dessous qui fonctionne très bien sur Chrome et Safari, mais ne fonctionne pas dans IE et Firefox:

       window.onload = function() {

            var btnClicks = document.getElementsByClassName('noPopup');
            var links = document.getElementsByTagName('a');

            for (var i = 0; i < links.length; i++) {
                links[i].onclick = setGlobal;
            }
            for (var i = 0; i < btnClicks.length; i++) {
                btnClicks[i].onclick = setGlobal;
            }
            function setGlobal() {
                window.btn_clicked = true;
                window.linkClicked = true;
            }

              window.onbeforeunload = function() {
                  if (!window.btn_clicked || !window.linkClicked) {
                      return 'Would you like to save first.';
                  }
              };

      };

OriginalL'auteur HBK | 2013-07-24