标签:
但是用户可能将窗口切换到计算机上其它窗口上了,比如看其它网页、聊一下QQ、收发一下邮件等各种其它事情,此时web窗口就不在用户焦点上了,收到的新消息时很可能看不到。而javascript控制的web窗口并不能很好融入到OS级别的窗口系统中。比较普遍的一种做法就是让浏览器标题栏不断闪烁,应用程序的标题闪烁是很容易被注意到的,不管是浏览器和其它各种程序之间,还是浏览器多tab或windows之间。这算是最接近OS级别窗口的提示方式了。
var isWindowFocus = true;
function focusin() { isWindowFocus=true;}
function focusout() { isWindowFocus=false;}
//注册焦点变化监听器
if ("onfocusin" in document){//for IE
document.onfocusin = focusin;
document.onfocusout = focusout;
} else {
window.onblur = focusout;
window.onfocus= focusin;
}
var flashStep=0; //交替变量
var flashTitleRun = false; //是否正在执行
var normalTitle = "正常显示的标题";
function flashTitle()
{
//仅窗口不在焦点时闪烁title,回到焦点时停止闪烁并将title恢复正常
if(isWindowFocus){//当前处于焦点
document.title=normalTitle;
flashTitleRun = false;
return;//退出循环
}
flashTitleRun = true;
flashStep++;
if (flashStep==3) {flashStep=1;}
if (flashStep==1) {document.title="【您有新的消息】";}
if (flashStep==2) {document.title="【 】";}
setTimeout("flashTitle()",500); //循环
}
//调用这个执行标题闪烁,而不是直接调用flashTitle,保证多次调用只会执行一次。
function doFlashTitle(){
if(!flashTitleRun)//没有执行时,才执行
flashTitle();
}
标签:
原文地址:http://www.cnblogs.com/xingweb/p/4288325.html