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 相关文章推荐
解密效果
Jun 23 Javascript
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
jquery 插件学习(四)
Aug 06 Javascript
JQuery文字列表向上滚动的代码
Nov 13 Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
Sep 17 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
JavaScript的兼容性与调试技巧
Nov 22 Javascript
浅谈javascript alert和confirm的美化
Dec 15 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 Javascript
vue+elementUI中表格高亮或字体颜色改变操作
Nov 02 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
PHP截取中文字符串的问题
2006/07/12 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
PHP的autoload机制的实现解析
2012/09/15 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
浅析php静态方法与非静态方法的用法区别
2016/05/17 PHP
PHP实现小偷程序实例
2016/10/31 PHP
javascript string字符串优化问题
2011/07/31 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
详解vue.js组件化开发实践
2016/12/14 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
js实现无缝滚动双图切换效果
2019/07/09 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现的百度站长自动URL提交小工具
2014/06/27 Python
低版本中Python除法运算小技巧
2015/04/05 Python
tensorflow更改变量的值实例
2018/07/30 Python
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
2016/03/22 HTML / CSS
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
安全承诺书范文
2014/03/26 职场文书
听课评语大全
2014/04/30 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
社区灵活就业证明
2014/11/03 职场文书
学习保证书100字
2015/02/26 职场文书