详解React项目中碰到的IE问题


Posted in Javascript onMarch 14, 2019

最近接手一个React项目,在IE下碰到了俩问题

IE11报错如下:

详解React项目中碰到的IE问题

跟踪一下之后,发现是一些其他的npm包里面用到了startsWith这个方法,可以自己polyfill一下:

if (!String.prototype.startsWith) {
 String.prototype.startsWith = function (search, pos) {
 return this.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search
 }
}

不过加prototype的方法毕竟不好,可以通过引入@babel/polyfill解决,在入口文件中引入import '@babel/polyfill';

IE11问题解决后,IE10又出问题了。。。

详解React项目中碰到的IE问题

犯了stackoverflow和github的很多帖子之后,在这个帖子里找到,发现是Object.setPrototypeOf的问题,Object.setPrototypeOf说是支持了IE9-11, 实际在源码里只实现了11+(https://github.com/paulmillr/es6-shim/blame/master/README.md#L78)

解决办法可以是在polyfill url后加上excludes=Object.setPrototypeOf, 或者自己实现Object.setPrototypeOf方法,我这里引入了一个库setprototypeof,然后在入口文件中加上Object.setPrototypeOf = require('setprototypeof');

其实这个库里的实现代码非常少, 可以简单看下

'use strict'
/* eslint no-proto: 0 */
module.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)

function setProtoOf (obj, proto) {
 obj.__proto__ = proto
 return obj
}

function mixinProperties (obj, proto) {
 for (var prop in proto) {
 if (!obj.hasOwnProperty(prop)) {
  obj[prop] = proto[prop]
 }
 }
 return obj
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js获取单选按钮的数据
Nov 27 Javascript
JS中类或对象的定义说明
Mar 10 Javascript
js面向对象编程之如何实现方法重载
Jul 02 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
JS实现弹性漂浮效果的广告代码
Sep 02 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
Aug 13 Javascript
微信小程序小组件 基于Canvas实现直播点赞气泡效果
May 29 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
Aug 10 Javascript
JS实现炫酷雪花飘落效果
Aug 19 Javascript
解决antd Form 表单校验方法无响应的问题
Oct 27 Javascript
js实现简单商品筛选功能
Feb 02 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 #Javascript
React+Antd+Redux实现待办事件的方法
Mar 14 #Javascript
Node.js + express基本用法教程
Mar 14 #Javascript
Vue渲染过程浅析
Mar 14 #Javascript
详解关于JSON.parse()和JSON.stringify()的性能小测试
Mar 14 #Javascript
详解使用React制作一个模态框
Mar 14 #Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 #Javascript
You might like
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
js中键盘事件实例简析
2015/01/10 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
基于vue实现swipe分页组件实例
2017/05/25 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
快速解决element的autofocus失效问题
2020/09/08 Javascript
python通过字典dict判断指定键值是否存在的方法
2015/03/21 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
世界上最大的汽车共享网站:Zipcar
2017/01/14 全球购物
国际书籍零售商:Wordery
2017/11/01 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
酒店管理自荐信
2013/10/23 职场文书
实习单位接收函
2014/01/11 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript