Отключить JS до загрузки, если нажата кнопка с определенным идентификатором - PullRequest
0 голосов
/ 10 октября 2018

Проблема:

У меня есть предупреждающий знак beforeunload, который активируется, если пользователь пытается отойти от веб-страницы.Я хочу отключить это поведение, если пользователь нажимает определенную кнопку.

JS:

window.addEventListener("beforeunload", function (e) {
    var confirmationMessage = "Not a good idea - want to reconsider?";

    (e || window.event).returnValue = confirmationMessage; //Gecko + IE
    return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
});

HTML:

<a href="survey.php" class="btn btn-primary" id="initiatesurvey">Next</a>

Требуемый выход:

Чтобы активировать возможность нажатия кнопки «Далее» без предварительной загрузки.Я видел несколько решений для SO, но я ищу решение, которое является чистым JS.

1 Ответ

0 голосов
/ 10 октября 2018

Удалить прослушиватель событий, когда они нажимают кнопку.Для этого вам нужно использовать именованную функцию, а не анонимную функцию, чтобы вы могли ссылаться на нее при вызове removeEventListener.

function beforeUnload(e) {
  var confirmationMessage = "Not a good idea - want to reconsider?";

  (e || window.event).returnValue = confirmationMessage; //Gecko + IE
  return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.

}

window.addEventListener("beforeunload", beforeUnload);

document.getElementById("initiatesurvey").addEventListener("click", function() {
  window.removeEventListener("beforeunload", beforeUnload);
});
...