标题栏闪动的小程序-------不得不吐槽啊!!!
实习这些期间,朝七晚九的日子很少写东西了,今天难得空闲~
昨天接到一个feature,意思是如果用户因页面某程序运行时间过长离开(并未关闭)当前页面,当该程序运行完要给用户一个提示。
本来想做一个声音,程序运行完判断是否用户离开,“梆噹”一声用户肯定回来!来段江南斯戴尔也好哈,哈哈~~后来一想自己这台实习用台式机连个音响都没有,声音在高端大气上档次给谁听啊!
转而想起了人人那种消息提示,不错,煎饼果子就这套了!
var timeId=null; var originalTitle = document.title;
function titleAlert(){ var title = "【 】"; timeId = setInterval(function(){ document.title = title; title = title != "【 】" ? "【 】" : "【你有新的消息】"; },1000); } window.onblur= titleAlert;
window.onfocus=function(){ document.title = originalTitle ; clearInterval(timeId);
timeId = null; }
这思路还行吧。。。。。。可惜在chrome来DEBUG,悲剧这就开始了。。。
你妹啊,上来风平浪静啊!blur一下停不住啊!药药药,来那套啊!!!debug让我崩溃啊,尼玛这是咋执行的啊!!!
憋了半天,上FF试试吧,花擦的,没问题,这是哪样!
百度无解,google了一下,我擦10年chrome的onfocus事件就和其他解析不一样了,现在还没改。。。。。。而且我居然到现在才知道(前端真是一门很深的学问啊)!!!
但是现在还是不知道,chrome的解析是怎么回事。。。。。。
默默打开chrome,F12,发现document.title = originalTitle ;这句还是执行了的!后面那句嘛,希望大神能告诉我chrome是怎么想的!!!
于是乎,isBlur出场了
window.onblur = function(){
isBlur = true;
}
只能定义一个全局变量了,作为一个信号传到后面需要的titlealert的函数中做个判断条件。
被各种浏览器整死了!!!!求大神指教上面遇到的问题。
还有一个问题就是document.title = originalTitle 这个有时候也有问题,原因是onfocus这个事件,对页面内容修改有一定的延迟,所以需要用settimeout来延时一定的时间。