js как вызвать ссылку с обратным вызовом [дублировать]

char s[] = "Hello world";

Здесь s представляет собой массив символов, который может быть перезаписан, если мы хотим.

char *s = "hello";

Строковый литерал используется для создания этих символьных блоков где-то в памяти, на который указывает этот указатель s. Мы можем здесь переназначить объект, на который он указывает, изменив это, но пока он указывает на строковый литерал, блок символов, на которые он указывает, не может быть изменен.

13
задан Denys Séguret 3 April 2013 в 13:01
поделиться

2 ответа

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

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

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

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

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

26
ответ дан Denys Séguret 3 September 2018 в 16:50
поделиться

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

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); 
35
ответ дан Prakash Chennupati 3 September 2018 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: