IE6浏览器下resize事件被执行了多次解决方法


Posted in Javascript onDecember 11, 2012

在IE浏览器下,一次resize事件被执行了多次。这是IE6和IE7的一个比较广为认知的问题,这个问题在这两个版本的浏览器中表现有所不同,通常IE6下会比IE7下更为糟糕。
现在已经有了一个较好的解决方案,让jquery.wresize.js这个jquery插件来帮你:
Js代码

/* 
=============================================================================== 
WResize is the jQuery plugin for fixing the IE window resize bug 
............................................................................... 
Copyright 2007 / Andrea Ercolino 
------------------------------------------------------------------------------- 
LICENSE: php">http://www.opensource.org/licenses/mit-license.php 
WEBSITE: http://noteslog.com/ 
=============================================================================== 
*/ 
( function( $ ) 
{ 
$.fn.wresize = function( f ) 
{ 
version = '1.1'; 
wresize = {fired: false, width: 0}; 
function resizeOnce() 
{ 
if ( $.browser.msie ) 
{ 
if ( ! wresize.fired ) 
{ 
wresize.fired = true; 
} 
else 
{ 
var version = parseInt( $.browser.version, 10 ); 
wresize.fired = false; 
if ( version < 7 ) 
{ 
return false; 
} 
else if ( version == 7 ) 
{ 
//a vertical resize is fired once, an horizontal resize twice 
var width = $( window ).width(); 
if ( width != wresize.width ) 
{ 
wresize.width = width; 
return false; 
} 
} 
} 
} 
return true; 
} 
function handleWResize( e ) 
{ 
if ( resizeOnce() ) 
{ 
return f.apply(this, [e]); 
} 
} 
this.each( function() 
{ 
if ( this == window ) 
{ 
$( this ).resize( handleWResize ); 
} 
else 
{ 
$( this ).resize( f ); 
} 
} ); 
return this; 
}; 
} ) ( jQuery );

如何使用,请看这个例子test page
Js代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" style="overflow:hidden;"> 
<head> 
<title> test window resize </title> 
<script type="text/javascript" src=http://www.hake.cc/kf/201109/"http://jquery.com/src/jquery-latest.pack.js"></script> 
<script type="text/javascript" src=http://www.hake.cc/kf/201109/"jquery.wresize.js"></script> 
<script type="text/javascript"> 
jQuery( function( $ ) 
{ 
function content_resize() 
{ 
var w = $( window ); 
var H = w.height(); 
var W = w.width(); 
$( '#content' ).css( {width: W-20, height: H-20} ); 
} 
$( window ).wresize( content_resize ); 
content_resize(); 
} ); 
</script> 
</head> 
<body> 
<div id="content" style="border: 1px dashed silver; position:absolute; overflow:auto;"> 
test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test test 
</div> 
</body> 
</html>
Javascript 相关文章推荐
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
Oct 08 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
vue.js绑定class和style样式(6)
Dec 09 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
代码详解Vuejs响应式原理
Dec 20 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
Jun 24 Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 Javascript
jQuery+ajax实现文件上传功能
Dec 22 jQuery
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 #Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
Dec 11 #Javascript
javascript中window.event事件用法详解
Dec 11 #Javascript
js 延迟加载 改变JS的位置加快网页加载速度
Dec 11 #Javascript
js控制CSS样式属性语法对照表
Dec 11 #Javascript
javascript向flash swf文件传递参数值注意细节
Dec 11 #Javascript
ajax的hide隐藏问题解决方法
Dec 11 #Javascript
You might like
浅析get与post的一些特殊情况
2014/07/28 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
jqgrid 简单学习笔记
2011/05/03 Javascript
JS获取当前网址、主机地址项目根路径
2013/11/19 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python读取键盘输入的2种方法
2015/06/16 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
Python基础知识点 初识Python.md
2019/05/14 Python
Python用input输入列表的实例代码
2020/02/07 Python
Python3列表List入门知识附实例
2020/02/09 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
作文批改评语大全
2014/04/23 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
机动车登记业务委托书
2014/10/08 职场文书
2014年质检工作总结
2014/11/26 职场文书