标题栏闪动的小程序-------不得不吐槽啊!!!

实习这些期间,朝七晚九的日子很少写东西了,今天难得空闲~

昨天接到一个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来延时一定的时间。

 

 

 

 

posted on 2013-08-20 23:24  happycloud~~  阅读(926)  评论(0编辑  收藏  举报