完美解决IE低版本不支持call与apply的问题
来源:互联网 发布:乔丹十次得分王的数据 编辑:程序博客网 时间:2024/04/30 16:56
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);
};
}
代码如下:
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);
};
}
- 完美解决IE低版本不支持call与apply的问题
- 解决低版本ie下li:hover不支持的问题
- 完美解决IE不支持placeholder的问题
- bootstrap解决IE低版本不支持HTML5问题
- 低版本ie不支持eval方法的解决
- 低版本的ie不支持trim()方法
- 更新SDK后ADT版本低不支持问题的解决
- iOS如何解决某些方法低版本不支持的问题
- 快速解决低版本Xcode不支持高版本iOS真机调试的问题
- 快速解决低版本Xcode不支持高版本的iOS真机调试问题
- 快速解决低版本Xcode不支持高版本iOS真机调试的问题
- 解决低版本Xcode不支持高版本iOS真机调试的问题
- ios 解决低版本Xcode不支持高版本iOS真机调试的问题
- [Android Tool]更新SDK后ADT版本低不支持问题的解决
- [Android Tool]更新SDK后ADT版本低不支持问题的解决
- [Android Tool]更新SDK后ADT版本低不支持问题的解决
- [Android Tool]更新SDK后ADT版本低不支持问题的解决
- [Android--Tool]更新SDK后ADT版本低不支持问题的解决
- nginx 的web路径权限问题
- HDU 2084 数塔(DP)
- hdu1800 Flying to the Mars ELFHash/BKDHash
- linux security model (LSM)加载实现顺序
- List 和Array的转化
- 完美解决IE低版本不支持call与apply的问题
- Linux 入门常用命令
- WebLogic高级系统管理官方培训-视频分享
- MSYS + Mingw64环境搭建
- Qt setMask 窗口
- android wifi讲解 wifi列表显示
- xcode代码提示功能失效的解决方法
- String中intern的方法
- 别浪费自己的高学历