JavaScript 中解决 IE8 不支持 indexOf 的方法

作者:木棉

时间:2026-10-30

浏览:597

本文介绍 JavaScript 中 indexOf 方法在 IE8 及以下版本浏览器中不支持的问题,并提供一种通过定义 Array.prototype.indexOf 来实现兼容性的解决方案,确保旧版浏览器也能正常使用该数组方法。

文章目录

indexOf 方法的基本定义

indexOf() 方法的定义与用法

indexOf() 方法用于返回某个指定的字符串值在字符串中首次出现的位置。

该方法将从头到尾地检索字符串 stringObject,检查它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。

stringObject 中的字符位置是从 0 开始的。

如果在数组中没找到字符串则返回 -1。

IE8 下不支持 indexOf 的解决方案

步入正题:

js中的 indexof方法查找给定元素能找在数组中找到的第一个索引值,但indexof在IE8下是不支持的,本文给大家介绍ie8 不支持 indexof 的解决方法

如何某浏览器不支持indexof,你可以在编写scripts时,在其开头使用以下代码,它能够允许你在没有本地支持的情况下使用indexOf方法。


if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(searchElement, fromIndex) {
var k;
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var O = Object(this);
var len = O.length >>> 0;
if (len === 0) {
return -1;
}
var n = +fromIndex || 0;
if (Math.abs(n) === Infinity) {
n = 0;
}
if (n >= len) {
return -1;
}
k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
while (k < len) {
if (k in O && O[k] === searchElement) {
return k;
}
k++;
}
return -1;
};
}

js不支持indexof的相关介绍就到此介绍完了,以上解决办法很管用,需要的朋友可以参考下以上教程,同时也非常感谢大家对本站网站的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章