我的网站有许多针对不同屏幕宽度定制的样式表。当浏览器调整大小时,window.onresize事件会通过查看document.documentElement.clientWidth. 如果是这样,它会依次打开更大的样式表,直到出现滚动条。然后,它以相反的顺序将它们关闭,直到滚动条消失。offsetWidth通过比较来检测滚动条scrollWidth。
在 IE8 中,两个新问题混淆了调整大小的检测。一,onresize当滚动条出现或消失时触发,二,d.dE.clientWidth报告没有滚动条的宽度,从 IE7 和所有其他浏览器中断。我的网站现在经常陷入一个循环,其中onresize逻辑激活一个更大的样式表,该样式表创建滚动条,然后触发另一个无法过滤掉的调整大小事件,因为clientWidth滚动条出现或消失导致该事件发生了变化。outerWidth如果 IE8 有我可以检查的东西,这将是一个微不足道的修复。