Подтвердить что ты не робот

Функция window.onclose

Я использую эту функцию для вызова моего окна.

Это всплывающее окно окна подтверждения.

if(confirm("Sure you want to close the window");
{
     // yes return to submit function
}
else
{
  // no return to Other call function
}

window.onclose = function()
{
  alert('yes');
}

При закрытии окна в правом верхнем углу с символом X мне нужно вернуть false. Я пытаюсь использовать эту функцию window.onclose, но не появляется.

Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

К сожалению, во всплывающем окне нет закрытого события, которое вы можете прослушать, но есть закрытое свойство, которое истинно, когда окно закрывается. Решение этой проблемы состоит в том, чтобы запустить таймер и проверить закрытое свойство дочернего окна каждую секунду и очистить таймер, когда окно закрывается. Вот код:

var win = window.open('http://www.google.com','google','width=800,height=600,status=0,toolbar=0');   
var timer = setInterval(function() {   
    if(win.closed) {  
        clearInterval(timer);  
        alert('closed');  
    }  
}, 1000); 

Ответ 2

Не существует "закрытого" события, которое вы можете поймать с сегодняшними браузерами.

Существует onbeforeunload, но вы не можете много сделать, когда он вызывается, особенно вы не можете предотвратить закрытие окна без согласия пользователя и большинство удаленных операций не удастся, если вы попробуете их со страницы, которая закрывается.

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

 var w = window.open('popup.html');
 w.onbeforeunload = function(){
       // set warning message
 };

ВАЖНО. В последних версиях хром onbeforeunload позволяет вам устанавливать предупреждающее сообщение; вы можете не запускать дополнительную логику.