当浏览器选项卡处于非活动状态或用户位于其他选项卡中时,我将每秒在标题中显示“新消息...”。我用过这个:
<script>
var mytimer;
function log() {
document.title = document.title == "" ? "New message..." : "";
}
$(window).focusout(function () {
mytimer=setInterval(function () {
log();
}, 1000);
}).focusin(function () {
clearInterval(mytimer);
});
</script>
当用户离开当前标签时,它开始工作,但当它返回标签时,它不会停止。知道这有什么问题吗?
解决方案:
我刚刚将focusout
方法更改为blur
,将focusin
方式更改为focus
并开始在Firefox中使用。在IE和Chrome中正常运行。
答案 0 :(得分:3)
您没有将setInterval
设置为myTimer
。
mytimer = setInterval(function () {
log()
}, 1000);
添加了 fiddle ; 通过单击输出窗口来聚焦输出窗口,然后通过单击另一帧来解除对焦。
答案 1 :(得分:1)
编辑:测试并使用chrome,firefox,ie和opera。在原始标题和New Message
之间来回闪烁,如同irc。
$(function(){
var title = $('title').html();
var thread = null;
$(window).focusout(function () {
var i = 0;
thread = setInterval(function(){
if(i % 2 == 0 || i == 0){
$('title').html("New Message..");
}else{
$('title').html(title);
}
i++;
},500);
}).focusin( function(){
clearInterval(thread);
$('title').html(title);
});
});