Могу ли я получить возвращаемое значение из confirm on beforeunload

#javascript

#javascript

Вопрос:

Когда я возвращаю строку, я могу всплывающее окно подтвердить перед обновлением страницы.

   window.onbeforeunload = (e) => {
    timeout = setTimeout(function () {
      new Promise((res, rej) => {
        return res();
      }).then(() => {
        console.log("I want to see my it when blue button is clicked")
      })
    }, 1);
    return "";
  };
 

Я пытался получить возвращаемое значение из подтверждения того, нажал ли пользователь ok или cancle, но не удалось. Возможно ли это?

Комментарии:

1. просто для того, чтобы я получил тебя.. когда появится подтверждение .. вы хотите увидеть ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ ПОДТВЕРЖДЕНИЯ ? например, если вы нажмете OK , он вернется true и все такое?

2. Я бы сказал, чтобы перехватить функцию (за исключением того, что изменение имени confirm на какое-то другое не работает)

3. решение было бы в состоянии сделать это (принять функцию в качестве аргумента и изменить ее реальное значение, как если бы оно было передано в качестве ссылки).. изменение конструктора не работает .. если по какой-то случайности я мог бы отредактировать функцию в качестве аргумента.. да, это будет возможно: {

Ответ №1:

beforeunload событие не имеет обратного вызова. Однако вы можете использовать таймер для выполнения этой работы.

 var timeout;

function warning() {
    timeout = setTimeout(function() {
        alert('You stayed');
    }, 1000);
    return "You are leaving the page";
}

function noTimeout() {
    clearTimeout(timeout);
}

window.onbeforeunload = warning;
window.unload = noTimeout;​
 

ДЕМО-ВЕРСИЯ: http://jsfiddle.net/aPwfz/1 /

Комментарии:

1. Спасибо за ответ, я обновил свой вопрос.