西南彩票官网:详解React项目中碰到的IE问题

 更新时间:2019年03月14日 14:20:29   作者:小闲   我要评论
这篇文章主要介绍了React项目中碰到的IE问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

天津市福利彩票官网 www.hnhik.tw 最近接手一个React项目,在IE下碰到了俩问题

IE11报错如下:

跟踪一下之后,发现是一些其他的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又出问题了。。。

犯了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操作数组详解

    javascript操作数组详解

    这篇文章主要详细介绍了javascript操作数组的方法以及示例,需要的朋友可以参考下
    2014-12-12
  • js屏蔽退格键(backspace或者叫后退键与F5)

    js屏蔽退格键(backspace或者叫后退键与F5)

    今天有工作人员反馈后台编辑文章的时候,多按了几下退格键,然后当前编辑的页面都返回到上一页了,导致刚刚添加的内容全部丢失,今天正好有空给整理一下
    2019-02-02
  • 两个JavaScript jsFiddle JSBin在线调试器

    两个JavaScript jsFiddle JSBin在线调试器

    这两个工具都是刚诞生不久,都还在不断完善中,虽然目前jsFiddle要优于JS Bin,但是我还是更看好后者
    2010-03-03
  • 原生js实现跨浏览器获取鼠标按键的值

    原生js实现跨浏览器获取鼠标按键的值

    e.button W3C是获取鼠标按键 0 表示左键 1表示中键 2表示右键 而IE浏览器则是 1表示左键 4表示中间 2表示右键 这里的IE浏览器主要是IE8以下的浏览器,感兴趣的朋友可以参考下哈
    2013-04-04
  • 微信小程序如何访问公众号文章

    微信小程序如何访问公众号文章

    这篇文章主要介绍了微信小程序如何访问公众号文章,随着小程序不断的发展,现在个人的小程序也开放了很多功能了,个人小程序直接打开公众号链接。在群里看到的一款小程序,点击可以直接阅读文章了,需要的朋友可以参考下
    2019-07-07
  • 基于iframe实现类似于ajax的页面无刷新

    基于iframe实现类似于ajax的页面无刷新

    本方法是基于iframe实现的,需求是form表单提交带有文件上传的input标签,示例如下,感兴趣的朋友可以参考下
    2014-05-05
  • js阻止冒泡和默认事件(默认行为)详解

    js阻止冒泡和默认事件(默认行为)详解

    这篇文章主要为大家详细介绍了js阻止冒泡和默认事件,即默认行为,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Js实现京东无延迟菜单效果实例(demo)

    Js实现京东无延迟菜单效果实例(demo)

    本篇文章主要介绍了Js实现京东无延迟菜单效果实例(demo) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 让低版本浏览器支持input的placeholder属性(js方法)

    让低版本浏览器支持input的placeholder属性(js方法)

    低版本浏览器一般都不会支持input的placeholder属性,接下来使用js实现下,感兴趣的朋友可以参考下哈
    2013-04-04
  • 兼容IE,firefox的获取节点的文本值的javascript代码

    兼容IE,firefox的获取节点的文本值的javascript代码

    javascript获取节点的文本值,已经考虑了兼容性。大家可以放心使用。注意了这里的兼容没有使用innerText,如果要使用兼容innerText,请参考脚本之家以前发布的文章。
    2009-12-12

最新评论