转自:http://www.jbxue.com/article/8367.html

原因分析:

这是一个js bug, 在IE8下,js数组没有indexOf方法,会报错;而在其它浏览器下(Firefox, Chrome, IE9)都是正常的。

解决方案:

1.个人在网上找到了一种解决方法:
就是在使用indexOf方法前,验证一下是否存在该方法IndexOf方法,如果有调用;如果没有就添加一个:
代码如下:

//添加数组IndexOf方法
if (!Array.prototype.indexOf){
Array.prototype.indexOf = function(elt /*, from*/){
var len = this.length >>> ; var from = Number(arguments[]) || ;
from = (from < )
? Math.ceil(from)
: Math.floor(from);
if (from < )
from += len; for (; from < len; from++){
if (from in this && this[from] === elt)
return from;
}
return -;
};
}

2.对于本ID来说,我已经引入了jquery的库函数,发现jquery里面也有类似工具函数(jQuery.inArray()方法):

就使用jQuery.inArray()替换了Array.prototype.indexOf,使用实例如下:

var arr = [ , "Pete", , "John" ];
jQuery.inArray("John", arr); //
jQuery.inArray(, arr); //
jQuery.inArray("David", arr); //-1
jQuery.inArray("Pete", arr, ); //-1

3. 上面的方法也可以结合使用。

IE8不支持数组的indexOf方法 如何解决的更多相关文章

  1. 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法

    /* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...

  2. IE8不支持数组的indexOf方法

    在IE8下有个js错误,但是在其它浏览器下(Firefox, Chrome, IE9)下面都很正常.后来调试发现原因是在IE8下,js数组没有indexOf方法. 在使用indexOf方法前,执行一下 ...

  3. 解决了IE8不支持数组的indexOf方法

    ie在过去给我们添了很多坑. if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt /*, from*/ ) { ...

  4. js解决IE不支持数组的indexOf()方法

    if (!Array.indexOf) {                                    Array.indexOf = function (obj) {            ...

  5. JavaScript——数组的indexOf()方法在IE8中的兼容性问题

    昨天在工作中遇到一个问题:数组的indexOf()方法在IE8中无效. 如以下代码在IE8中报错“对象不支持“indexOf”属性或方法”: var arr = [1,2,3]; var index ...

  6. JavaScript—从数组的indexOf方法深入——Object的Property机制。

    在js中,可以说万物皆对象(object),一个数组也是一个对象(array). 很多对象都有很多很方便的方法 比如数组的push,concat,slice等等,但是如果一些对象,它没有实现这些方法, ...

  7. js 判断数组包含某值的方法 和 javascript数组扩展indexOf()方法

    var  questionId = []; var anSwerIdValue = []; ////javascript数组扩展indexOf()方法 Array.prototype.indexOf ...

  8. 数组的indexOf方法--数组去重

    数组的indexOf方法 数组方法大家再熟悉不过了,却忽略了数组有 indexOf 这个方法(我个人感觉). 干说不练瞎扯淡,遇到了什么问题,注意⚠️点又在哪里? let arr = ['orange ...

  9. IE8数组不支持indexOf方法的解决办法

    在使用indexof方法之前加上以下代码就可以了. if (!Array.prototype.indexOf){           Array.prototype.indexOf = functio ...

随机推荐

  1. WGCNA 分析

    https://www.jianshu.com/p/f80de3468c04 https://mp.weixin.qq.com/s/-DthUKY2RTY6vxtxapzLkw https://www ...

  2. uva-10194-排序

    题意: 如果一个队伍的得分比对方高,那么就赢得这场游戏,很明显,如果得分低那就是输了,如果俩个队伍的得分一样,那么就是平局,赢得比较获得3个点的得分,平手1个点的得分,输了0分.排序规则如下1:得分点 ...

  3. UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position

    python实现爬虫遇到编码问题: error:UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX ...

  4. zabbix_get无法执行agent端的脚本文件解决办法

    一,无法执行脚本参考网站:http://blog.51cto.com/13589448/2070180 权限不足时提示: server端提示: [root@yao local]# zabbix_get ...

  5. Redis 几个全局命令, 以及事物

    1, 清空当前数据库的所有数据 =>  flushdb 2, 清空所有数据库的所有数据 => flushall 3, key 值检索命令 => scan num match if 会 ...

  6. DEMO: springboot 与 freemarker 集成

    直接在 DEMO: springboot 与 mybatis 集成 基础上,进行修改. 1.pom.xml 中引用 依赖 <dependency> <groupId>org.s ...

  7. web.xml 组件加载顺序

    <web-app>     <display-name></display-name> WEB应用的名字 <description></descr ...

  8. VBA 选择文件

    Private Function SelectFile(ByVal strFilter As String) As String    Dim FileName As Variant     '打开文 ...

  9. Nginx bind() to 0.0.0.0:8000 failed (10013: 错误解决

    本人配置Nginx 8000端口, 启动Nginx 失败, 查看日志logs/error.log出现如下提示 结束酷狗进程就Ok叻

  10. Socket IO Web实时推送

    1服务器pom.xml引入 <!-- 服务端 --> <dependency> <groupId>com.corundumstudio.socketio</g ...