onbeforeunload срабатывает, как только загружается окно. Происходит только в Safari 13 - PullRequest
0 голосов
/ 22 февраля 2020

Попытка запустить функцию для переключения наложения на сафари при открытии и закрытии всплывающего окна.

var newWindow = null;

function offOverlay() {
    document.getElementById("overlay").style.display = "none";
}

function onOverlay() {
    document.getElementById("overlay").style.display = "block";
}

function myFunction() {
    newWindow = win.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+y+', left='+x);
    onOverlay();
    newWindow.onbeforeunload = offOverlay;
}

Таким образом, с помощью кнопки будет запущена функция myFunction (), чтобы открыть всплывающее окно, затем он переключится на оверлей div и добавит прослушиватель событий в newWindow, чтобы отключить событие оверлея onbeforeunload. Я протестировал его на chrome, firefox, safari, но только сафари вызывает у меня проблему, когда он мгновенно запускает offOverlay при загрузке newWindow.

Пробовал с помощью onunload, но он вызывает ту же проблему. Не уверен, что могло вызвать это.

...