IE8兼容性解决forEach()、addEvntListener

原生js的DOM操作:http://www.w3school.com.cn/htmldom/dom_methods.asp

具体操作:http://www.w3school.com.cn/jsref/dom_obj_all.asp

1.javascript 如何解决IE8不支持forEach()

转载自:点击打开链接

forEach 是在第五版本里被添加到 ECMA-262 标准的;这样它可能在标准的其他实现中不存在,你可以在你调用 forEach 之前 插入下面的代码,在本地不支持的情况下使用 forEach()。该算法是 ECMA-262 第5版中指定的算法。算法假定ObjectTypeError拥有它们的初始值。callback.call 等价于Function.prototype.call()

[javascript] view plain copy

  1. if ( !Array.prototype.forEach ) {  
  2.   Array.prototype.forEach = function forEach( callback, thisArg ) {  
  3.     var T, k;  
  4.     if ( this == null ) {  
  5.       throw new TypeError( "this is null or not defined" );  
  6.     }  
  7.     var O = Object(this);  
  8.     var len = O.length >>> 0;   
  9.     if ( typeof callback !== "function" ) {  
  10.       throw new TypeError( callback + " is not a function" );  
  11.     }  
  12.     if ( arguments.length > 1 ) {  
  13.       T = thisArg;  
  14.     }  
  15.     k = 0;  
  16.     while( k < len ) {  
  17.       var kValue;  
  18.       if ( k in O ) {  
  19.         kValue = O[ k ];  
  20.         callback.call( T, kValue, k, O );  
  21.       }  
  22.       k++;  
  23.     }  
  24.   };  
  25. }  

2.对象不支持addEvntListener属性或方法

 

[javascript] view plain copy

  1. //判断IE7\8 兼容性检测  
  2.            var isIE=!!window.ActiveXObject;  
  3.            var isIE6=isIE&&!window.XMLHttpRequest;  
  4.            var isIE8=isIE&&!!document.documentMode;  
  5.            var isIE7=isIE&&!isIE6&&!isIE8;  
  6.               
  7.            if(isIE8 || isIE7){  
  8.                li.attachEvent("onclick",function(){  
  9.                    _marker.openInfoWindow(_iw);  
  10.                })      
  11.            }else{  
  12.                li.addEventListener("click",function(){  
  13.                    _marker.openInfoWindow(_iw);  
  14.                })  
  15.            }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值