ie8 onresize事件,两次射击

时间:2013-01-06 18:49:42

标签: javascript internet-explorer internet-explorer-8

在我的HTML中:

<body onresize="doSomething();">

我在javascript中有这个:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

关键是,它是相当有争议的,是什么构成窗口调整大小。您必须接受,浏览器和操作系统之间存在很大差异。

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

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

答案 1 :(得分:2)

这是Window resize event fires twice in jQuery的副本。 调整窗口大小时会触发onresize事件,但可以多次触发。