完美解决IE低版本不支持call与apply的问题

原创 2013年12月05日 16:26:58
Function.prototype的apply和call是在1999年发布的ECMA262 Edition3中才加入的(1998年发布ECMA262 Edition2)。在此前的的浏览器如IE5.01(JScript 5.0)中是没有apply和call的。因此会带来一些兼容性问题,以下是修复方式:
 代码如下:

if(!Function.prototype.apply){
    Function.prototype.apply = function(obj, args){
        obj = obj == undefined ? window : Object(obj);//obj可以是js基本类型
        var i = 0, ary = [], str;
        if(args){
            for( len=args.length; i<len; i++ ){
                ary[i] = "args[" + i + "]";
            }
        }
        obj._apply = this;
        str = 'obj._apply(' + ary.join(',') + ')';
        try{
            return eval(str);
        }catch(e){
        }finally{
            delete obj._apply;
        }   
    };
}
if(!Function.prototype.call){
    Function.prototype.call = function(obj){
        var i = 1, args = [];
        for( len=arguments.length; i<len; i++ ){
            args[i-1] = arguments[i];
        }
        return this.apply(obj, args);
    };
}

解决老浏览器不支持ES6的方法

由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性进行兼容,那么浏览器肯定无法识...
  • qq_36380426
  • qq_36380426
  • 2017年05月02日 15:50
  • 7437

placeholder兼容浏览器的解决方案

关于placeholder的使用,众所周知它是h5的新属性,所以IE9以下就别想用它了,不支持。 那么我们必须要低版本的浏览器,做一些降级处理的兼容,原理自然就是:提示语placeholder用其他方...
  • xw505501936
  • xw505501936
  • 2016年10月14日 14:57
  • 5716

bootstrap兼容IE各版本的浏览器问题

Bootstrap的目标是在最新的桌面和移动浏览器上有最佳的表现,也就是说,在较老旧的浏览器上可能会导致某些组件表现出的样式有些不同,但是功能是完整的。 bootstrap3支持的浏览器:   ...
  • u014516981
  • u014516981
  • 2016年06月23日 23:58
  • 6498

IE8及低版本浏览器不支持CSS3 media queries的解决方法

最近在解决UI问题时碰到以下浏览器不兼容性问题(本人属于UI业余操作者,很多想法就很业余了): 问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口缩小时对应的布局;其他...
  • wuruixn
  • wuruixn
  • 2013年03月06日 17:36
  • 32567

IE8及低版本浏览器不支持CSS3 media queries的解决方法

(173LY) 最近在解决UI问题时碰到以下浏览器不兼容性问题(本人属于UI业余操作者,很多想法就很业余了): 问题:IE8及其以下低版本IE浏览器在缩小窗口时,UI没有按照相应的要求显示窗口...
  • ft2166826
  • ft2166826
  • 2014年04月15日 11:02
  • 580

快速解决低版本Xcode不支持高版本iOS真机调试的问题

今天在进行真机调试的时候,遇到了以下问题。 Could not locate device support files. This iPhone 6s is running iOS 10.2...
  • u013316626
  • u013316626
  • 2017年01月05日 23:06
  • 9611

ios 解决低版本Xcode不支持高版本iOS真机调试的问题

解决低版本Xcode不支持高版本iOS真机调试的问题 原创 2017年10月26日 23:40:06 标签:iphone /xcode 518 ...
  • qq_30754211
  • qq_30754211
  • 2017年11月06日 16:41
  • 115

解决IE很多版本不支持placeholder的问题

今天被测试提了个BUG,  说在IE8上输入框默认提示语不显示;  然后我就写了个JS来解决这个问题 //IE不支持placeholder的问题 ————————start————Mr.Wan...
  • wangyijie521
  • wangyijie521
  • 2017年12月29日 09:57
  • 44

解决selenium不支持firefox低版本

1、用winrar打开selenium-server.jar; 2、查找两个目录:customProfileDirCUSTFFCHROME和customProfileDirCUSTFF; ...
  • dongtianlaile
  • dongtianlaile
  • 2012年07月16日 16:29
  • 5800

解决低版本Xcode不支持高版本iOS真机调试

进行真机调试的时候,遇到了以下问题。Could not locate device support files. This iPhone 6s is running iOS 10.2(14C92),...
  • YanceChen2013
  • YanceChen2013
  • 2017年03月28日 14:31
  • 470
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:完美解决IE低版本不支持call与apply的问题
举报原因:
原因补充:

(最多只允许输入30个字)