您的位置:首页 > 其它

IE兼容性问题处理( 对象不支持startsWith )

2018-03-21 18:09 1551 查看
一、 IE:对象不支持startsWith利用 react + redux + webpak 实现了一个mini项目。在项目快做完需要处理兼容性的时候却发现有一个坑爹的问题,项目在火狐和Chrome上都可以正常的使用,但是却不能兼容IE(IE11)。打开控制台刷新浏览器会变成这个样子,并且很奇怪没有生成对应的dom树,但是还好有报错:


放大一下报错信息,它的报错信息是“对象不支持startsWith”


那么startsWith?由于不确定startsWith的用处,我在ecmascript里查了查,并且百度了string.prototype.startsWith


备注:startWith是用于判断当前字符串是否以anotherString作为开头,与它对应的是endsWith,用于判断是否以某字符串作为结尾。EG:"imsohappy".startsWith("im") //true"imsohappy".startsWith("y") //false"imsohappy".endsWith("im") //false"imsohappy".endsWith("y") //true



于是引入 corejs 提供polyfill方案(有些方法你不支持,Polyfill使用你支持的方法帮你实现了这些你不支持的方法。)

翻译过来就是corejs是js的模块化和标准化库,它为ECMAScript 5,ECMAScript 6:promises, symbols, collections, iterators, typed arrays,以及ECMAScript 7的等等提供了polyfills。所以 引入core-js 可以解决这个问题。再总结就是,有人把写的一堆实现方法*(包括如何用低版本的js实现高版本的js的方法),总结成一个库就是corejs
备注:后来查了网页和博客,发现startWith是2015年语言规范里更新的,在规范里强调浏览器应该自带这个方法,之后chrome 在下个发行版本里就加上了,但是2015年之前的chrom版本就没有,而ie始终不支持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  兼容性