You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IE11报错:Object doesn't support property or method 'includes',求替代方案

解决IE11中includes()方法不兼容的问题

嗨,太懂这种跨浏览器兼容的坑了!IE11确实不支持ES6新增的Array.prototype.includes()方法,这就是你代码在主流浏览器正常、唯独IE11报错的核心原因。下面给你两种实用的替代方案:

方案一:直接用indexOf()替换

这是最省心的单场景解决方案,因为IE11完全支持indexOf()方法。当数组包含目标元素时,indexOf()会返回它的索引值(≥0);如果不包含则返回-1,我们可以通过这个判断逻辑替代includes():

const keys = Object.keys(this.service.content);
// 用indexOf的返回值判断元素是否存在
if (keys.indexOf(splitUrl[splitUrl.length - 1]) !== -1) {
  this.router.navigateByUrl(`/mysite/${splitUrl[splitUrl.length - 1]}/1`);
}

方案二:添加全局Polyfill

如果你的项目里有很多地方都用到了includes(),不想逐个替换的话,可以在项目入口文件(比如main.js或者全局脚本里)添加一段Polyfill,一次性解决所有IE11的兼容问题:

// 为Array.prototype添加includes的兼容实现
if (!Array.prototype.includes) {
  Array.prototype.includes = function(searchElement) {
    // 简化版实现,足够覆盖大部分场景
    return this.indexOf(searchElement) !== -1;
  };
}

添加之后,你原来的代码完全不需要修改,直接用includes()就可以在IE11里正常运行了。

两种方案都能解决你的问题,按需选择就行~

内容的提问来源于stack exchange,提问作者bobdolan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:36:23