摆脱IE11中的FormData.entries

问题描述

我需要摆脱或跳过IE11中的FormData.entries()。我有从这里检查IE 11的代码: https://stackoverflow.com/a/22242528/1824579

        var formData = new FormData();

        ...

        if (!navigator.appVersion.indexOf('Trident/') > -1) { //is 29 in IE; -1 in Chrome
            for (var pair of formData.entries()) { //error in IE11
                ...
            }
        }

所以我要实现的是,如果浏览器是IE11,则应跳过此部分。到目前为止,我还无法实现这一目标。在控制台中,我只会显示此错误: SCRIPT1004: Expected ';' Index(1094,31),正好在以下行中的单词pair之后:for (var pair of formData.entries()) {

我不知道为什么IE11会如此普及,因为IE11中的日志或navigator.appVersion.indexOf('Trident/')的结果是29

解决方法

IE11不支持

for...of。这是语法级别的问题,特征检测无法解决。最好的选择是将Babel之类的源代码转换为IE11。

,

问题可能出在使用逻辑NOT运算符。检查“ indexOf> -1”应该可以解决问题,或者您可能需要使用一组额外的括号:

if (!(navigator.appVersion.indexOf('Trident/') > -1))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...