Ie8 onresize事件,触发两次

ie8 onresize event, firing twice

本文关键字:两次 onresize 事件 Ie8      更新时间:2023-09-26

in my html:

<body onresize="doSomething();">

我在我的javascript中有这个:

function doSomething() {
    alert(1);
    // it doesn't actually have alert(1), but this is just for demonstration
}

当我调整浏览器窗口的大小时(通过双击其标题),该事件在IE8中触发两次,从而扰乱了该函数。

有人知道为什么和如何避免吗?提前感谢!

您会发现,如果您通过随机移动右下角的拖动区域来"调整"浏览器窗口的大小,则onresize事件会反复触发。

关键是,什么构成了窗口大小,这是相当有争议的。您将不得不接受,这在浏览器和操作系统之间是完全不同的。

处理这个问题的方法包括取消if设置,然后在resize事件上设置一个定时器(window.setTimeout),并在定时器触发时进行真正的大小调整工作。

如果您的onresize不是太昂贵,您应该以一种不受重复调用影响的方式创建它

这是jQuery中窗口大小调整事件触发两次的副本。onresize事件在调整窗口大小时触发,但可以多次触发。