rxbg.cn rxbg.cn

欢迎光临
我们一直在努力
顶部
域名
云服务器48/月

IE6下focus与blur错乱的解决方案_javascript技巧-js教程-

复制代码 代码如下:



hello
<script> <BR>window.onblur=function(){ <BR>document.title= 'blur:' + Math.random() ; <BR>} <BR>window.onfocus=function(){ <BR>document.title= 'focus:' + Math.random() ; <BR>} <BR></script>


这应该是一个很常见的需求,例如,当前窗口定期更新数据,而窗口失焦则减少信息更新频率。IE6的bug导致的配对混乱却会打乱我们的计划。
上网查也没查出关于这个bug的官方说明与推荐解决方案,只好自己生更的实现一个解决方案。
代码如下:
复制代码 代码如下:



hello
<script> <BR>(function(){ <BR>var focusTimer = 0; <BR>function myBlur(){ <BR>document.title= 'blur:' + Math.random() ; <BR>} <BR>function myFocus(){ <BR>clearTimeout(focusTimer); <BR>focusTimer = setTimeout(function(){ <BR>document.title = 'focus:' + Math.random() ; <BR>},10); <BR>} <BR>window.onfocus = document.body.onfocusin = myFocus; <BR>window.onblur = document.body.onfocusout = myBlur; <BR>}()); <BR></script>


大略原理是:找到很多可能触发onfocus与onblur的时机,所有的onblur都立即执行,而onfocus则延时10毫秒懒惰执行。
结果是:虽说有时多执行了几次myFocus与myBlur,但能保证窗口状态的正确性。
方法可能有点山寨,不过一时没想到更好的办法,这样也暂时能解个燃眉之急。
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。
发布内容
-六神源码网 网站出售带数据-六神源码网 网站出售带数据-六神源码网 网站出售带数据-六神源码网