setTimeout не задерживает self.close () в Chrome - PullRequest
1 голос
/ 09 мая 2011

Следующий код предназначен для закрытия всплывающего окна с расширением Google Chrome через 3 секунды после отправки пользователем формы.

function closeIt() {
    self.close();
}

$('#logForm').html('<h2>Bookmark Added</h2>');
setTimeout(closeIt,3000);

Если я сам вызываю self.close () в потоке кода, он работает правильно, чтобы закрыть всплывающее окно. Тем не менее, в этом примере он не выполняется вообще и не показывает задержки, пока всплывающее окно не обновится.

Я попытался поэкспериментировать с предупреждением, только чтобы обнаружить, что предупреждения явно мешают подсчету setTimeout ... Я также пытался использовать «closeIt» с кавычками, но безрезультатно.

UPDATE: Спасибо вам за помощь! Всплывающее окно закрывается с помощью следующего кода, но задержки вообще нет. Код включен в функцию, которая запускается при отправке формы. Просто чтобы исключить проблему с функцией close, я также попытался использовать $ ('# logForm'). Css ('border', '3px double red'); вместо self.close (), чтобы увидеть, будет ли задержка и выполнение, но не было.

function closeIt() {
    self.close();
}

$('#logForm').html('<h2>Bookmark Added</h2>');
setTimeout(function() {closeIt();} ,3000);

1 Ответ

1 голос
/ 09 мая 2011

Используйте следующее

window.onload = function()
        {
            setTimeout(function(){
                window.close()
            },3000);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...