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 相关文章推荐
Prototype Function对象 学习
Jul 12 Javascript
JavaScript正则表达式之multiline属性的应用
Jun 16 Javascript
jQuery实现自动与手动切换的滚动新闻特效代码分享
Aug 27 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
Mar 11 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
JavaScript中日常收集常见的10种错误(推荐)
Jan 08 Javascript
JQuery实现图片轮播效果
May 08 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
Oct 27 jQuery
使用JS获取SessionStorage的值
Jan 12 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
Jan 20 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
一个PHP的ZIP压缩类分享
2014/05/04 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
详解php中的implements 使用
2017/06/13 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
设定php简写功能的方法
2019/11/28 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
xtree.js 代码
2007/03/13 Javascript
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JS实现转动随机数抽奖特效代码
2020/04/16 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python3多线程知识点总结
2019/09/26 Python
目前不被任何主流浏览器支持的CSS3属性汇总
2014/07/21 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
机关保密承诺书
2014/06/03 职场文书
小组口号大全
2014/06/09 职场文书
工作失职自我检讨书
2015/05/05 职场文书
教师岗位说明书
2015/09/30 职场文书
python基础之停用词过滤详解
2021/04/21 Python
python如何读取和存储dict()与.json格式文件
2022/06/25 Python