setTimeout不会在Chrome中延迟self.close()

时间:2011-05-09 03:25:49

标签: javascript google-chrome google-chrome-extension

以下代码旨在在用户提交表单3秒后关闭Google Chrome扩展程序弹出窗口。

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

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

如果我在代码流中单独调用self.close(),它可以正常关闭弹出窗口。但是,在示例中,它似乎根本不执行,并且在弹出窗口刷新之前没有延迟。

我曾尝试过稍微尝试警报,发现警报显然会干扰setTimeout计数......我也试过使用带有引号的“closeIt”无效。

更新: 感谢您的帮助!弹出窗口正在关闭以下代码,但没有任何延迟。代码包含在运行于表单提交的函数中。为了排除关闭函数问题的问题,我也尝试使用$('#logForm')。css('border','3px double red');代替self.close()来查看是否会有延迟和执行但是没有。

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

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

1 个答案:

答案 0 :(得分:1)

使用以下

window.onload = function()
        {
            setTimeout(function(){
                window.close()
            },3000);
        }