【发布时间】:2011-08-22 06:57:40
【问题描述】:
我发现在 IE8 中打开一段 html 和 javascript 时似乎总是会重现的问题。
<html>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(window).resize(function() {
console.log('Handler for .resize() called');
});
});
</script>
<div id="log">
</div>
</body>
</html>
在 IE8 中加载此文件并打开开发者工具会显示在浏览器窗口大小调整一次后连续打印日志消息。
有人知道为什么吗?这不会发生在 IE7 或 IE9 中,也不会发生在其他浏览器(或至少是它们的最新版本)中。
更新
如果浏览器是 IE8,防止 resize() 连续触发的一种解决方案是在 document.body.onresize 上添加处理程序。
var ieVersion = getInternetExplorerVersion();
if (ieVersion == 8) {
document.body.onresize = function () {
};
}
else {
$(window).resize(function () {
});
}
但这并不能回答我的问题:resize() 的连续触发是 IE8 中的错误吗?
【问题讨论】:
-
无法在 IE8 中使用此 fiddel 重现此问题:jsfiddle.net/hrtp8
标签: javascript jquery html internet-explorer resize