详解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 相关文章推荐
基于jQuery的js分页代码
Jun 10 Javascript
validator验证控件使用代码
Nov 23 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
Javascript 读取操作Sql中的Xml字段
Oct 09 Javascript
在HTML中插入JavaScript代码的示例
Jun 03 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
javascript实现网页字符定位的方法
Jul 14 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
Node.js与MySQL交互操作及其注意事项
Oct 05 Javascript
Vue2组件tree实现无限级树形菜单
Mar 29 Javascript
jquery之基本选择器practice(实例讲解)
Sep 30 jQuery
Vue 中 filter 与 computed 的区别与用法解析
Nov 21 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伪静态之APACHE篇
2014/06/02 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
基于jquery的文章中所有图片width大小批量设置方法
2013/08/01 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
JavaScript cookie详解及简单实例应用
2016/12/31 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
给Python中的MySQLdb模块添加超时功能的教程
2015/05/05 Python
解决Python传递中文参数的问题
2015/08/04 Python
python实现简单中文词频统计示例
2017/11/08 Python
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
pycharm 安装JPype的教程
2019/08/08 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
Python 防止死锁的方法
2020/07/29 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
女装和独特珠宝:Sundance Catalog
2018/09/19 全球购物
法律工作求职自荐信
2013/10/31 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
2014年妇产科工作总结
2014/12/08 职场文书
2015个人半年总结范文
2015/03/09 职场文书
市场营销计划书
2019/04/24 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis