Мы используем следующий код, чтобы отображать всплывающее окно по умолчанию при обновлении, события закрытия вкладки
var myEvent = window.attachEvent || window.addEventListener;
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable
myEvent(chkevent, function (e) { // For >=IE7, Chrome, Firefox
if ($('#timeExpiredtxt').hasClass('hide') && $("#submittedAnsResponseText").hasClass("hide")) {
var confirmationMessage = 'You are attempting an assessment. Are you sure you want to leave this assessment?';
(e || window.event).returnValue = confirmationMessage;
return confirmationMessage;
}
});
Я хочу удалить и отвязать это событие во время выполнения. Я попробовал следующий код, но не повезло.
$(window).off("beforeunload");
$(window).off("onbeforeunload");
window.onbeforeunload = null;
$ (окно) .unbind ("до выгрузки");
@HelloWorld, 2018 год. Зачем использовать языки высокого уровня? Ассемблер и машинный код работают нормально
@Rory JavaScript теперь довольно кроссбраузерный / платформенный. jQuery должен уйти в прошлое. В наши дни это в основном накладные расходы.
Бабушка - это не проблема кеширования.
HelloWorld - я хочу отвязать эти события. Jquery или document.getElementById, classList, addEventListener и removeEventListener также подойдут. Просто нужно решение
Кроссплатформенность спорна, если вам нужна поддержка устаревшего IE. jQuery намного лаконичнее, чем JS, и многим еще есть место. В любом случае это не конструктивное обсуждение или обсуждение темы, поэтому нет смысла продолжать его.
@ganesh var myFunction = function () {}; window.addEventListener ("перед загрузкой", myFunction); window.removeEventListener ("перед выгрузкой", myFunction); должно сработать?
HelloWorld пробовал, что не работает.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Пришлось изменить код привязки события.
function closeIt() {
if ($('#timeExpiredtxt').hasClass('hide') && $("#submittedAnsResponseText").hasClass("hide")) {
return "Any string value here forces a dialog box to \n" +
"appear before closing the window.";
}
}
window.onbeforeunload = closeIt;
и отвяжите используемый ниже код
window.onbeforeunload = null;
Вы уверены, что это не проблема кеширования?