zoukankan      html  css  js  c++  java
  • 标题栏闪动的小程序-------不得不吐槽啊!!!

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

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

  • 相关阅读:
    第一天站立会议
    Sprint会议计划
    软件需求分析
    团队介绍
    再写行转列和列转行
    二十三种设计模式之:组合(Composite)模式(部分·整体模式)
    对于类和对象的认识
    对排序的认识
    设计模式分类
    二十三种设计模式之:适配器模式
  • 原文地址:https://www.cnblogs.com/happycloud/p/3271674.html
Copyright © 2011-2022 走看看