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

前端技术 2023/09/03 JavaScript

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

本文地址:https://www.stayed.cn/item/6215

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。