在 IE11 中去掉 FormData.entries()

Get rid of FormData.entries() in IE11

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

        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会这么快,因为一个日志或navigator.appVersion.indexOf('Trident/')的结果在IE11中是29

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

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

for...of is not supported in IE11. This is a syntax-level issue that can't be solved by feature detection. Your best bet is to transpile your source code with something like Babel,针对 IE11。