#javascript #typescript #events
#javascript #typescript #Мероприятия
Вопрос:
У меня есть файл ts, в котором я написал функцию для выхода из системы, которая :
private addListenersForLogout() {
if (this._logoutDiv) {
this._logoutDiv.addEventListener("click", (e) => {
DataManager.getDataManager().geHttpDataHandler().postRequest("", HTMLFactory.POST_USER_LOGOUT, () => {
window.location.href = Constants.LOGIN;
}, () => {
Console.log("Failed");
})
})
}
}
Здесь this._logoutDiv
находится элемент div, к которому я добавляю прослушиватель кликов. Когда пользователь нажимает на него, вызывается один серверный API, и на основе ответа я перенаправляю на страницу входа. Но как только я нажимаю на него и после того, как я получаю ответ от серверной части, он показывает окно предупреждения «Покинуть сайт». Как я могу это удалить?? или есть какая-либо альтернатива window.location.href
перенаправлению??
Вот скриншот предупреждающего сообщения.
Спасибо
Комментарии:
1. Что именно представляет собой «окно предупреждения покинуть сайт»?
2. Я добавил скриншот предупреждения @deceze
Ответ №1:
Это диалоговое окно не из кода, который вы опубликовали здесь: что-то подключается к событию onbeforeunload где-то еще на сайте.
Вам либо нужно пропустить его добавление, либо вы можете удалить его непосредственно перед переходом. Для этого вам нужно вызвать window.removeEventListener с той же функцией (и типом события), с помощью которой был вызван addEventListener.
В качестве обходного пути вы могли бы попробовать добавить это прямо перед перенаправлением:
window.onbeforeunload = null;