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