函数说明:

js中的indexOf方法的作用是:

根据给定参数x返回目标字符串(可以看成字符的数组)或数组中与x相等的项的索引。

这个方法相当有用,很多编程语言中都有相对应的实现,javascript中也不例外,但是在ie8-中运行如下代码:

<script type="text/javascript">   var arr = [1,2,3];alert(arr.indexOf(1));
</script>   

却被提示“对象不支持此属性和方法” 。而在chrome,firefox下去运行良好。google发现原来js中Array的indexOf方法在js1.6版本中才给予了实现,ie7,8中只实现到了js1.3版本,chrome为js1.7版本,ff为js1.8版本。

解决方法:

针对ie进行扩展, 代码如下:

if(!Array.prototype._indexOf){Array.prototype._indexOffunction(n){                                                                                                                                         if("indexOf" in this){ return this["indexOf"](n); }   for(var i=0;i<this.length;i++){ if(n===this[i]){ return i; } } return -1; };
}; 

使用举例:

<script type="text/javascript">   var arr = ["1","2","3"];   alert(arr._indexOf("2"));
</script>   

这里我们针对Array的原型进行了扩展,在扩展方法的命名上加上了”_”字符,我认为这是一个好的习惯,当你在针对原型进行扩展的时候有必要对自己的扩展加以标记。
在_indexOf方法中,我们首先判断当前Array是否实现了“indexOf” 方法,如果是的话直接调用系统发法,否则进行遍历。

IE对象不支持此属性或方法: this.indexOf 的解决方法相关推荐

  1. js错误:对象不支持此属性或方法

    对象不支持此属性或方法 错误原因: 可能是js的文件名和另外一个文件重复. 也有可能是js里的function和另外一个function名字重复. 也有可能是js里的function和页面的某一元素重 ...

  2. 解决IE10以下对象不支持“bind“属性或方法

    IE10一下的浏览器,如果在JS代码中用了bind函数,那么就会报"SCRIPT438: 对象不支持"bind"属性或方法" 因为浏览器没有提供这个参数的方法, ...

  3. Error in v-on handler: “TypeError: 对象不支持“set”属性或方法“

    Error in v-on handler: "TypeError: 对象不支持"set"属性或方法" FormData.set() 所有IE不兼容 MDN-F ...

  4. 常见错误:JavaScript 提交form 的时候,Error:对象不支持此属性或方法

    form submit() Error:对象不支持此属性或方法 无论用document.forms[0].submit() 还是其他方式,均报此错误 说明form中有名字叫做submit的元素,一般为 ...

  5. 页面老报错: 对象不支持此属性或方法

    网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; CIBA) 时间戳: Mon, ...

  6. IE显示对象不支持此属性或方法 的解决方法

    有时用IE打开某些网站,比如经常有朋友碰到的是在打开QQ空间时,在IE左下角的状态栏会显示"已完毕,但网页上有错误!",双击这个错误会看到提示是"找不到指定模块" ...

  7. javascript 方法 一直提示 对象不支持此属性或方法

    今天在做那个登录功能时,登录运行到login()方法时IE老是提示"对象不支持此属性或方法".... 网上查资料得知:javaScript的方法名中不能与页面上的标签名相同.... ...

  8. 解决document.form.submit()对象不支持此属性或方法

    很奇怪的问题,呵呵..被我碰到了. 很简单,将页面中名称为"submit"的控件改一下名称就可以了 比如: 有一个submit按钮名字叫submit <input type= ...

  9. 对象不支持“attachEvent”属性或方法

    IE11浏览器在访问我们的服务器的时候出现错误:对象不支持"attachEvent"属性或方法.网上说需要进入管理加载项禁用迅雷的某个组件.我试了一下,好像不管用.因为在IE9浏览 ...

最新文章

  1. Linux下通过gettimeofday函数获取程序段执行时间
  2. 【03】Spark分析日志实例
  3. 用 Flask 来写个轻博客 (36) — 使用 Flask-RESTful 来构建 RESTful API 之五
  4. NSTableView使用笔记(一)
  5. ML之ECS:利用ECS的PAI进行傻瓜式操作机器学习的算法
  6. eclipse连接Mysql和测试
  7. html 简单 在线编辑器 ie ff,一款垃圾中的极品HTML编辑器(兼容IE OR FF)
  8. 《深度学习入门:基于Python的理论与实现》第四章代码原理详细解析
  9. 【JS 逆向百例】有道翻译接口参数逆向
  10. Chrome划词翻译插件
  11. 修改 linux分区文件,修改分区和EXT4文件系统大小
  12. 深入理解JVM虚拟机(5)——JVM虚拟机类加载机制概述
  13. 高等数学——伽马函数
  14. 完成知乎项目的登录和注册功能(一)
  15. 程序员学英语Oeasy
  16. E - Skyscrapers (hard version)
  17. docker-the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winp
  18. Blob和File对象API与兼容性问题
  19. 中移物联网模块M8321P调试记录
  20. JCA - 核心类和接口

热门文章

  1. Springboot秒杀系统(乐观锁+RateLimiter令牌+Redis缓存)
  2. 如何复制360doc图书馆的文字
  3. Codeforces Round #673 (Div. 2) B. Two Arrays
  4. UVA-673:Parentheses Balance踩坑
  5. python青少儿编程教程-青少年PYTHON编程入门
  6. 51单片机汇编学习笔记9——定时计数器
  7. MFC常识性知识汇总
  8. np.random.shuffle()
  9. AutoEventWireup=“true” 属性
  10. 关于vue的seo优化