手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >IE6下focus与blur错乱的解决方案
IE6下focus与blur错乱的解决方案
摘要:复制代码代码如下:hellowindow.onblur=function(){document.title='blur:'+Math.ran...

复制代码 代码如下:

<body>

<textarea></textarea>

hello

<script>

window.onblur=function(){

document.title= 'blur:' + Math.random() ;

}

window.onfocus=function(){

document.title= 'focus:' + Math.random() ;

}

</script>

</body>

这应该是一个很常见的需求,例如,当前窗口定期更新数据,而窗口失焦则减少信息更新频率。IE6的bug导致的配对混乱却会打乱我们的计划。

上网查也没查出关于这个bug的官方说明与推荐解决方案,只好自己生更的实现一个解决方案。

代码如下:

复制代码 代码如下:

<body>

<textarea></textarea>

hello

<script>

(function(){

var focusTimer = 0;

function myBlur(){

document.title= 'blur:' + Math.random() ;

}

function myFocus(){

clearTimeout(focusTimer);

focusTimer = setTimeout(function(){

document.title = 'focus:' + Math.random() ;

},10);

}

window.onfocus = document.body.onfocusin = myFocus;

window.onblur = document.body.onfocusout = myBlur;

}());

</script>

</body>

大略原理是:找到很多可能触发onfocus与onblur的时机,所有的onblur都立即执行,而onfocus则延时10毫秒懒惰执行。

结果是:虽说有时多执行了几次myFocus与myBlur,但能保证窗口状态的正确性。

方法可能有点山寨,不过一时没想到更好的办法,这样也暂时能解个燃眉之急。

【IE6下focus与blur错乱的解决方案】相关文章:

DeviceOne 让你一见钟情的App快速开发平台

Node.js中JavaScript操作MySQL的常用方法整理

jquery判断至少有一个checkbox被选中的方法

根据内容自动调整弹出窗口大小的JS解决方案

js跨域请求的5中解决方式

iscroll.js的上拉下拉刷新时无法回弹的解决方法

一个表格收缩展开的函数

JQuery中DOM实现事件移除的方法

js控制excel打印完美解决方案

js光标定位文本框回车表单提交问题的解决方法

精品推荐
分类导航