fix-ie5.js扩展在IE5下不能使用的几个方法_javascript技巧_脚本之家

在IE5下的Javascript:
Array不支持push;Function不支持apply();String对象的replace方法不支持替换成一个处理函数。
使用下面的代码就可修复上述方法在IE5下无效的问题。 /*
fix-ie5.js,version1.0x3 Copyright2005,DeanEdwards
Web: ThissoftwareislicensedundertheCC-GNULGPL
Web: */
if(/MSIE5.0/.testnewfunction(){
var$$apply=function($function,$object,$arguments){ $function.apply; };
//fixString.replace if(”.replace{ //preserveString.replace
var_stringReplace=String.prototype.replace;
//createString.replaceforhandlingfunctions
var_functionReplace=function($expression,$replacement){
var$match,$newString=””,$string=this;
while($string&&($match=$expression.exec{
$newString+=$string.slice+$$apply($replacement,this,$match);
$string=$string.slice; } 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{ varAPPLY=”apply-“+Number; $$apply=function{ varr; o[APPLY]=f;
switch{//deconstructforspeed case0:r=o[fix-ie5.js扩展在IE5下不能使用的几个方法_javascript技巧_脚本之家。APPLY]();break;
case1:r=o[APPLY];break; case2:r=o[APPLY];break;
case3:r=o[APPLY];break; case4:r=o[APPLY];break; default:
varaa=[],i=a.length-1; doaa[i]=”a[“+i+”]”;while; eval; }
deleteo[APPLY]; returnr; }; //fixICommon
ICommon.valueOf.prototype.inherit=function(){
return$$apply(arguments.callee.caller.ancestor,this,arguments); }; }
//arrayfixes ifArray.prototype.push=function(){ for(vari=0;i

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图