项目js代码中使用了Javascript Map对象,代码在Chrome浏览器中可以正常运行,但在IE10及其以下版本中报“Map”未定义错误。


在MSDN中找到了IE各个版本浏览器对Map对象的支持情况,详细信息如下:

Language element IE 6、IE7 IE8 IE9 IE10 IE11 Edge
Map Object N N N N Y Y

可以看到IE10及其以下版本均不支持Javascript Map对象,同时文档中也提到不支持Windows 8(Not supported in Windows 8.)但IE11Edge是支持该对象的。

由于代码中只使用了Map对象的get()和set()方法,其他方法没有使用,所以采用自定义Map对象解决IE10及其以下版本浏览器运行出错问题。当判断浏览器版本为IE10及其以下版本时,使用自定义的Map对象替换Js Map对象。JavaScript代码如下:

// 判读是否为IE浏览器
function isIE() {return navigator.appName == "Microsoft Internet Explorer";
}// 判断IE版本
function IEVersion() {return parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""));
}// 自定义Map对象
function Map() {this.keys = new Array();this.data = new Object();this.set = function(key, value) {if (this.data[key] == null) {if (this.keys.indexOf(key) == -1) {this.keys.push(key);}}this.data[key] = value;}this.get = function(key) {return this.data[key];}
}// new Map()
var map = new Map();

IE10及其以下版本不支持Javascript Map对象(“Map”未定义)相关推荐

  1. JavaScript 运行时错误: 无法获取未定义或 null 一种解决方案

    JavaScript 运行时错误: 无法获取未定义或 null 一种解决方案 参考文章: (1)JavaScript 运行时错误: 无法获取未定义或 null 一种解决方案 (2)https://ww ...

  2. 谷歌浏览器不支持javascript 属性对象获取问题

    谷歌浏览器 JavaScript 属性对象获取问题 首先陈述一下我遇到的问题 我在img标签里面添加自定义属性fileName <img fileName="0_0.png" ...

  3. Map对象 map.get(key)

    Map - JavaScript | MDN const map = new Map([[1, '风'],[2, '雪'],[3, '月'],[-1, '-'],])let key = 1;const ...

  4. set和map去重调用什么方法_Es6中Map对象和Set对象的介绍及应用

    前言 今天说一说ES6的Set对象和Map对象.以及这两个对象的应用.目前主流浏览器(chrome32.IE11.Safari7.1以及 Firefox 13以上)都对这2个对象做了基本的支持.因此, ...

  5. 2021年大数据常用语言Scala(十八):基础语法学习 Map对象

    目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...

  6. MAP对象(js从入门到疯癫)

    MAP 前言:要搞清楚map是什么首先要搞清楚键值对的概念 什么是键值对? 键值对( 'key = value ') 顾名思义,每一个键会对应一个值. 举个例子:身份证号和你本人是绑定的关系.每一个身 ...

  7. JS的map方法和Map对象

    map方法 Array.prototype.map() 语法: array.map(function(item,index,arr), thisValue) item:数组每一项 (必须) index ...

  8. es6通过Map对象对数组去重

    关于js数组去重的方法有很多,我以前居然用的是嵌套两层for循环来加一层if来判断数组里面的重复数据,当我了解了es的方法之后,才发现我的方法是有多蠢(笑哭). 首先关于数组去重我们先简单介绍一下es ...

  9. Vue 循环map对象拿到key值和value值

    适用场景: vue中定义的map对象 map : { name : 'xxx' } 接口回显map格式的数据 data :{ key : value} 都可以通过以下方式拿到key和value的值 f ...

最新文章

  1. 把服务器文件备份到文件服务器,服务器之间文件备份方案、如何把服务器文件自动备份到另外一台服务器?...
  2. POJ 1064 Cable master (二分答案,G++不过,C++就过了)
  3. 拿下 Gartner 容器产品第一,阿里云打赢云原生关键一战!
  4. 备战2020年双十一,刷喵币靠这一个自动化脚本就够了!
  5. VLFeat在matlab和vs中安装
  6. 计算机学术论文3000字,计算机学术论文3000字_计算机学术毕业论文范文模板.doc...
  7. 小米路由器青春版刷入其他固件
  8. 浪潮服务器装显卡和显卡驱动
  9. 联想售后服务偷换主板
  10. HDU5745 La Vie en rose
  11. mk突变点检测_科学网—从网上找的M-K突变检验的程序 - 张乐乐的博文
  12. 鸢尾花的分类(四种方法)
  13. copypng emitted errors
  14. 如何裁剪图片中不要的部分?这个裁剪方法很好用
  15. 木兰花令——纳兰性德
  16. Lumerical Python API学习(七)——可视化几何
  17. 火狐(firefox)浏览器插件开发简明教程
  18. 技术支持网址 URL
  19. 为chrome书签栏中,没有默认图标的网站添加图标
  20. SD卡WAV音乐播放器(quartus11.0)(FAT32)(DE2-115)

热门文章

  1. [linux] 即使有root权限, 仍然无法修改文件 [E212 cant open file for writing.]
  2. 520,用AI为她写首歌吧!
  3. 华为Android手机adb连接不上的又一解决方案
  4. GIT 新手入门-4种撤销操作
  5. 【数学】JZOJ_3912 洛谷_2261 超氧化钾/[CQOI2007]余数求和
  6. text transform html,html5 – text-transform:uppercase导致Chrome上的布局错误
  7. TA移动终端:移动终端安全态势:产业链共融共赢
  8. 苹果MAC OS系统重置开机密码
  9. Android实现系统下拉栏的消息提示——Notification
  10. python实时检测循环_python实时检测循环_(06)-Python3之--判断、循环