我的箭头功能在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。
答案 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只会将你需要转换的部分代码转换(转换为代码片段到ES5),以支持你所有的浏览器。
答案 2 :(得分:1)
您可以使用多种解决方案在旧版浏览器中实现支持新的ES8 +功能。
全电路解决方案可以基于 Webpack 与 babel-transformers 和 polyfills 集合,也称为 shims < / strong>即可。您可以在create-react-app
或next.js
样板中看到陈规定型的配置。
更多的是,如果您在开发计算机上没有安装IE11,则可以使用TestCafe或NightWatch等测试套件提供程序在 SauseLabs 上运行E2E /功能测试。