Javascript 在iframe内设置超时,焦点丢失时出现问题

Javascript 在iframe内设置超时,焦点丢失时出现问题,javascript,iframe,settimeout,Javascript,Iframe,Settimeout,我有一个带有简单setTimeout的iframe: function load() { setTimeout("reloadContent()", 8000); } function reloadContent() { $('#somecontent').doSomething(); load(); } $(document).ready(function() { reloadContent(); }); 当我在父窗口上失去焦点(即移动到另一个程序或另一

我有一个带有简单setTimeout的iframe:

function load()
{
    setTimeout("reloadContent()", 8000);
}

function reloadContent()
{
    $('#somecontent').doSomething();
    load();
}

$(document).ready(function() 
{
    reloadContent();
});
当我在父窗口上失去焦点(即移动到另一个程序或另一个选项卡)时,就会出现问题。它似乎以某种方式堆叠了它必须重新加载内容的次数,然后当我重新获得焦点时,它会毫不延迟地执行所有内容

当我使用jQuery1.6.2时,这段代码失败,但它可以与jQuery1.3.2一起使用。我错过了什么?关于窗口/父级/iframe模糊/聚焦增益/损耗,有什么重要的事情需要了解吗?有什么提示吗


谢谢

您需要监视页面上的onblur和onfocus事件

    window.addEventListener('focus', function() {
        timeoutVarName = setTimeout(...,8000);
    });

    window.addEventListener('blur', function() {
        clearTimeout(timeoutVarName);
    });
您可以使用以下方法执行相同的操作:

window.onblur = function(){
    ...
};

window.onfocus = function(){
    ...
};

但这在google chrome中不起作用:)

您需要监视页面上的onblur和onfocus事件

    window.addEventListener('focus', function() {
        timeoutVarName = setTimeout(...,8000);
    });

    window.addEventListener('blur', function() {
        clearTimeout(timeoutVarName);
    });
您可以使用以下方法执行相同的操作:

window.onblur = function(){
    ...
};

window.onfocus = function(){
    ...
};
但这在google chrome中不起作用:)

尝试使用Smartupdater 3,可能使用div而不是iframe

您必须使用jQuery,然后从中尝试Smartupdater 3,并且可能使用div而不是iframe


您必须使用then jQuery

我已经尝试使用.blur和.focus方法,但这根本没有做任何更改。jQuery版本更改错误地解决了这个问题;可能是一个bug?我不知道jquery,但是如果您使用我粘贴的代码片段,它会起作用;)我已经尝试过使用.blur和.focus方法,但根本没有任何改变。jQuery版本更改错误地解决了这个问题;可能是一个bug?我不知道jquery,但是如果您使用我粘贴的代码片段,它会起作用;)谢谢,我会看看的!谢谢,我会看看的!