0

在我的 html 中:

<body onresize="doSomething();">

我的 javascript 中有这个:

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

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

有谁知道为什么以及如何避免它?提前致谢!

4

2 回答 2

3

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

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

要处理的问题包括取消(如果已设置),然后window.setTimeout在调整大小事件上设置计时器 ( ) 并在计时器触发时执行真正的调整大小工作。

如果你onresize的不是太昂贵,你应该以某种方式创建它,而不是重复调用。

于 2013-01-06T18:57:34.960 回答
2

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

于 2013-01-06T18:55:49.293 回答