IE6下focus与blur错乱的解决方案


Posted in Javascript onJuly 31, 2011
<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,但能保证窗口状态的正确性。
方法可能有点山寨,不过一时没想到更好的办法,这样也暂时能解个燃眉之急。
Javascript 相关文章推荐
Javascript 篱式条件判断
Aug 22 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
Jan 14 Javascript
JavaScript代码性能优化总结(推荐)
May 16 Javascript
js中的关联数组与普通数组详解
Jul 27 Javascript
浅谈jquery设置和获得checkbox选中的问题
Aug 19 Javascript
js实现微博发布小功能
Jan 12 Javascript
jQuery实现简单的手风琴效果
Apr 17 jQuery
解决Layui中layer报错的问题
Sep 03 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
Nov 13 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 #Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 #Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
Jul 31 #Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
Jul 31 #Javascript
读jQuery之十二 删除事件核心方法
Jul 31 #Javascript
读jQuery之十一 添加事件核心方法
Jul 31 #Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
Jul 31 #Javascript
You might like
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php判断访问IP的方法
2015/06/19 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
文字幻灯片
2006/06/26 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
玩转python爬虫之正则表达式
2016/02/17 Python
python实现中文文本分句的例子
2019/07/15 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
王老吉广告词
2014/03/20 职场文书
煤矿安全协议书
2014/08/20 职场文书
2014年企业党支部工作总结
2014/12/04 职场文书
环卫工作个人总结
2015/03/04 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
深入理解python协程
2021/06/15 Python
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers