解决jquery-easyui1.3.3combobox多选模式不兼容IE8问题

jquery-easyui的最新版本1.3.3中,combobox如果设置了多选模式,取消选择项时IE8下会报错,chrome firefox下则不会,由错误提示,可知错误代码在10650

function _7e8(_7e9,_7ea){ 

var _7eb=$.data(_7e9,"combobox"); 

var opts=_7eb.options; var _7ec=$(_7e9).combo("getValues"); 

var _7ed=_7ec.indexOf(_7ea+"");//10650行 这里报错 

if(_7ed>=0){ _7ec.splice(_7ed,1); 

_7e7(_7e9,_7ec);

 }

IE8下,数组不支持indexOf方法

解决方法有两种:
1.直接修改源代码

function _7e8(_7e9,_7ea)

var _7eb=$.data(_7e9,"combobox"); 

var opts=_7eb.options; 

var _7ec=$(_7e9).combo("getValues");

 var _7ed = (function(arr,str){

 str = str + ""; 

for(var i=0,l=arr.length;i<l;i++){ 

if(arr[i] == str) return i; 

return -1;

 })(_7ec,_7ea);

 if(_7ed > 0){ _7ec.splice(_7ed,1); _7e7(_7e9,_7ec); }


2.扩展Array的原型对象,加入indexOf方法

if(!Array.prototype.indexOf){ Array.prototype.indexOf = function(target){ for(var i=0,l=this.length;i<l;i++){ if(this[i] === target) return i; } return -1; }; }

相比较起来,第二种方法更加方便

 

在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 百度一下,你就知道 var wpo={start:new Date*1,pid:109,page:‘superpage’} 可以打开百度,右键查看源码看下!我们可以看下文件头是否存在这样一行代码! 这句话的意思是强制使用IE7模式来解析网页代码! 在这里送上几种IE使用模式! 2. Google Chrome Frame也可以让IE用上Chrome的引擎: 3.强制IE8使用IE7模式来解析 //或者 4.强制IE8使用IE6或IE5模式来解析 5.如果一个特定版本的IE支持所要求的兼容性模式多于一种,如: 二.设定网站服务器以指定预设兼容性模式 如果服务器是自己的话,可以在服务器上定义一个自订标头来为它们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。 录入,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。 另外还有一起其他的解决方案,例如google的 ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准,支持CSS2、CSS3选择器。它修复了许多的HTML和CSS问题,并使得透明PNG在IE5、IE6下正确显示。 使IE5,IE6兼容到IE7模式(推荐) 使IE5,IE6,IE7兼容到IE8模式 使IE5,IE6,IE7,IE8兼容到IE9模式 解决PNG显示问题 只需将透明png图片命名为*-trans.png 需要注意的是:此方法对背景平铺(background-repeat)和背景(background-position)无法起到任何作用,默认会占满整个容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值