Javascript 在iframe内设置超时,焦点丢失时出现问题
我有一个带有简单setTimeout的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(); }); 当我在父窗口上失去焦点(即移动到另一个程序或另一
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,但是如果您使用我粘贴的代码片段,它会起作用;)谢谢,我会看看的!谢谢,我会看看的!