IE下window.onresize 多次调用与死循环bug处理方法介绍


Posted in Javascript onNovember 12, 2013

window.onresize 在IE浏览器下有多次被执行甚至死循环的bug,会导致浏览器卡死

解决方案:

// IE浏览器下将onresize事件放在div上
if(navigator.userAgent && navigator.userAgent.toLowerCase().indexOf("msie")>-1){
    document.body.innerHTML = '<div onresize="resetClientWidth();lazyLoadImgesMethod();" style="width:100%;height:100%;position:absolute;z-index:-999;"></div>' + document.body.innerHTML;    
} else {
    window.onresize = function(){
      resetClientWidth();
      lazyLoadImgesMethod();
    };
}

ps:FF浏览器不支持在div上写onresize事件,window.onresize 虽然在FF下不会死循环,但如果在函数里面有alert执行,FF浏览器也会卡死,很无奈的bug。

PS: navigator.userAgent.split(";")[1].toLowerCase().indexOf("msie")>-1 这个判断ie的问题, 在chrome浏览器下会出现"toLowerCase()"方法未定义的错误.

所以修正为navigator.userAgent.toLowerCase().indexOf("msie")>-1

Javascript 相关文章推荐
JQuery困惑—包装集 DOM节点
Oct 16 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
详解JS 比较两个Json对象的值是否相等的实例
Nov 20 Javascript
JavaScript DOM事件(笔记)
Apr 08 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
javaScript事件机制兼容【详细整理】
Jul 23 Javascript
深入浅出 jQuery中的事件机制
Aug 23 Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
Apr 15 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 #Javascript
只需一行代码,轻松实现一个在线编辑器
Nov 12 #Javascript
JS中实现replaceAll的方法(实例代码)
Nov 12 #Javascript
jquery.validate的使用说明介绍
Nov 12 #Javascript
javascript 函数及作用域总结介绍
Nov 12 #Javascript
Javascript之this关键字深入解析
Nov 12 #Javascript
js hover 定时器(实例代码)
Nov 12 #Javascript
You might like
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
11个PHP 分页脚本推荐
2011/08/15 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
javascript document.images实例
2008/05/27 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
Python从零开始创建区块链
2018/03/06 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
解决Django响应JsonResponse返回json格式数据报错问题
2020/08/09 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
美国在线购物频道:Shop LC
2019/04/21 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
幼儿园中秋节活动方案
2014/02/06 职场文书
超市开学活动方案
2014/03/01 职场文书
技能比武方案
2014/05/21 职场文书
新教师岗前培训方案
2014/06/05 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
导游词之昭君岛
2020/01/17 职场文书
聊聊pytorch测试的时候为何要加上model.eval()
2021/05/23 Python