时间:2021-05-28
在IE5下的Javascript:
Array不支持push(),pop();Function不支持apply();String对象的replace方法不支持替换成一个处理函数。
使用下面的代码就可修复上述方法在IE5下无效的问题。
if(/MSIE5.0/.test(navigator.userAgent))newfunction(){
var$$apply=function($function,$object,$arguments){
$function.apply($object,$arguments);
};
//fixString.replace
if(''.replace(/^/,String)){
//preserveString.replace
var_stringReplace=String.prototype.replace;
//createString.replaceforhandlingfunctions
var_functionReplace=function($expression,$replacement){
var$match,$newString="",$string=this;
while($string&&($match=$expression.exec($string))){
$newString+=$string.slice(0,$match.index)+$$apply($replacement,this,$match);
$string=$string.slice($match.lastIndex);
}
return$newString+$string;
};
//replaceString.replace
String.prototype.replace=function($expression,$replacement){
this.replace=(typeof$replacement=="function")?_functionReplace:_stringReplace;
returnthis.replace($expression,$replacement);
};
}
//fixFunction.apply
if(!Function.apply){
varAPPLY="apply-"+Number(newDate);
$$apply=function(f,o,a){
varr;
o[APPLY]=f;
switch(a.length){//deconstructforspeed
case0:r=o[APPLY]();break;
case1:r=o[APPLY](a[0]);break;
case2:r=o[APPLY](a[0],a[1]);break;
case3:r=o[APPLY](a[0],a[1],a[2]);break;
case4:r=o[APPLY](a[0],a[1],a[2],a[3]);break;
default:
varaa=[],i=a.length-1;
doaa[i]="a["+i+"]";while(i--);
eval("r=o[APPLY]("+aa+")");
}
deleteo[APPLY];
returnr;
};
//fixICommon
ICommon.valueOf.prototype.inherit=function(){
return$$apply(arguments.callee.caller.ancestor,this,arguments);
};
}
//arrayfixes
if(![].push)Array.prototype.push=function(){
for(vari=0;i<arguments.length;i++){
this[this.length]=arguments[i];
}
returnthis.length;
};
if(![].pop)Array.prototype.pop=function(){
var$item=this[this.length-1];
this.length--;
return$item;
};
};
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用环境: showModalDialog IE4以上版本 showModelessDialog IE5以上区别: showModalDialog
官网http://dean.edwards.name/weblog/2008/01/ie7-2/一参考资料1解决IE5、IE6、IE7与W3C标准的冲突,使用(
兼容IE5+/Win,Firefox,Netscape6+,Opera7+,Safari,Konqueror3,IE5/Mac,还有iCab3.复制代码代码如下
兼容性。对于CSS并不是所有浏览器的所有版本都支持的很好,比如IE5以前的浏览器对于CSS的支持就不是很好。而现在使用IE5以前版本浏览器的用户不在少数,这样就
IE注释:最安全的HACKIE的途径这应该是我最常用的方法了,一般情况下,我们现在已经不用考虑IE5或者以下的浏览器了,这个注释让我们可以轻松HACKIE,并且