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 控制弹出窗口
Apr 10 Javascript
JavaScript CSS修改学习第一章 查找位置
Feb 19 Javascript
JS定时器实例
Apr 17 Javascript
jquery验证邮箱格式并显示提交按钮
Nov 07 Javascript
jquery仿ps颜色拾取功能
Mar 08 Javascript
layui分页效果实现代码
May 19 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
Jul 20 Javascript
webpack中使用iconfont字体图标的方法
Feb 22 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 Javascript
JavaScript手写数组的常用函数总结
Nov 22 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
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
Python备份Mysql脚本
2008/08/11 Python
python list使用示例 list中找连续的数字
2014/01/27 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
关于工资低的辞职信
2014/01/14 职场文书
高三政治教学反思
2014/02/06 职场文书
《跨越百年的美丽》教学反思
2014/02/11 职场文书
安全生产汇报材料
2014/02/17 职场文书
公休请假条
2014/04/11 职场文书
525心理活动总结
2014/07/04 职场文书
拾金不昧感谢信
2015/01/21 职场文书
中学生学习保证书
2015/02/26 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android