wetCoder
一个湿身的程序员,在编程的路上,一路爬行~
IE8浏览器对JavaScript中的endswith,startWith,trim,indexOf等方法(不支持)不兼容等问题处理
- 出现场景
近期在做项目的过程中,想要通过使用JavaScript 中的indexof 方法判断集合是否包含某个元素、使用endswith方法判断字符串中是否以某某结束的判断,在google、360、firefox等浏览器都没有问题,最后在IE8浏览器情况下测试,竟然出现了“该对象不支持indexof” 与“该对象不支持endswith”等报错。后来通过查询资料了解IE8 对js 的方法提供有限。所以需要修改方式来兼容不同版本的浏览器。以下为方式:
1、对于Array 的indexof 来说,我们可以试用jquery中提供的$.inArray()
方法,eg:$.inArray("1", levelArray)!=-1
这样判断levelArray中是否存在“1”这个字符串。这样就避免了之前使用indexof时IE8 不支持的问题。
2、对于String 的endswith来说,我们可以重写endswith 方法,也就是在js 中先重写如下代码:
String.prototype.endWith=function(s){
if(s==null||s==""||this.length==0||s.length>this.length)
return false;
if(this.substring(this.length-s.length)==s)
return true;
else
return false;
return true;
}
String.prototype.startWith=function(s){
if(s==null||s==""||this.length==0||s.length>this.length)
return false;
if(this.substr(0,s.length)==s)
return true;
else
return false;
return true;
}
然后在使用这个endWith方法。
if("0" == limitAreaLevel && id.toString().length != 2 ){
alert("业务逻辑视自己代码情况而定");
}
这样的话就避免了IE8 对endswith 不支持的问题!
网友评论