如果IE上不支持任何内容,我该怎么办?

时间:2017-07-18 09:47:23

标签: javascript ecmascript-6 ecmascript-5

我的箭头功能在Chrome / Firefox上完美运行,但我也需要在IE11上运行,我不知道还能做些什么。

Here你可以看到IE11不支持箭头功能,所以我尝试将我的代码从ES6更改为ES5 here,因为我读到这样做可以解决问题(在链接,你也可以检查我的代码:)删除箭头功能。

也不支持Object.entries,我仍然需要它。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

所以我尝试使用上面链接的polyfill但是它使用了不支持的Reflect。 https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Reflect

有什么想法吗?我真的迷失了IE11 dev。 PD:代码仍在使用Chrome / Firefox。

3 个答案:

答案 0 :(得分:2)

这是Object.entries的简单实现 它适用于https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries

中的所有示例
Object.entries = Object.entries || function(obj) {
   return Object.keys(obj).map(function(k) {
       return [k, obj[k]];
   });
};

答案 1 :(得分:1)

<{> babel babel preset env将是您的最佳选择。

这样你就可以列出你想要支持的浏览器,然后babel只会将你需要转换的部分代码转换(转换为代码片段到ES5),以支持你所有的浏览器。

答案 2 :(得分:1)

您可以使用多种解决方案在旧版浏览器中实现支持新的ES8 +功能。

全电路解决方案可以基于 Webpack babel-transformers polyfills 集合,也称为 shims < / strong>即可。您可以在create-react-appnext.js样板中看到陈规定型的配置。

更多的是,如果您在开发计算机上没有安装IE11,则可以使用TestCafe或NightWatch等测试套件提供程序在 SauseLabs 上运行E2E /功能测试。