#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. Спасибо за ответ, я обновил свой вопрос.