我有一个在 iframe 中加载另一个网站的页面。现在的问题是我需要记录顶部窗口是否模糊,如果是这样,则需要停止计数器。当您单击 iframe 时,此窗口将获得焦点,悬停后我无法将焦点返回到顶部窗口。因此,当我在浏览器中单击其他选项卡时,它不会调用此窗口的实际模糊功能。我需要的是一种在单击 iframe 并且光标已用鼠标离开 iframe 后将原始焦点返回到顶部窗口的方法。
我尝试了几种方法来做我在stackoverflow上找到的类似的事情,但没有什么适合我。
它应该看起来像这样:
$('iframe').mouseleave(function()
{
$(window.top).focus();
});
$(window).blur(function()
{
console.log('window blur');
});
编辑解决方法但 clearInterval 现在不起作用:
因为我没有得到上述代码的答案,所以我尝试了一些不同的方法。我对身体进行了检查,当鼠标离开时,它停止了间隔。这对我来说已经足够了。但是因为在 iframe 加载后启动计数器也很好,所以我尝试将间隔放在$('iframe').load
函数内。但是发生的情况是间隔将计算两次。当您想要 1 秒的间隔时,它会执行 2 秒。现在,当鼠标离开身体时,它不会停止间隔,而是将其设置回 1 秒而不是停止。代码下方:
var $interval = '';
$('body').mouseleave(function()
{
clearInterval($interval);
$('.message').html('<div class="alert alert-error"><button type="button" class="close" onclick="javascript:window.opener=\'x\';window.close();">×</button>You may not navigate away from advertisements! Click <a href="">here</a> to try again.</div>');
});
$("iframe").load(function()
{
$interval = setInterval(function()
{
clearInterval($interval);
console.log('clear interval not working when inside iframe load function');
}, 1000);
});
希望有人知道这里发生了什么。谢谢你。