Internet Explorer 11中的FormData.entries()?

时间:2017-11-19 23:35:16

标签: javascript typescript internet-explorer form-data polyfills

正如官方文档中所见,IE11根本不支持FormData,或者至少不支持我需要的。

在我的代码中,我必须遍历FormData元素的条目。对于此任务,我使用entries()函数,该函数不能在IE上发生错误

  

对象不支持属性或方法'条目'

我已经通过npm将https://github.com/jimmywarting/FormData添加到我的项目中,并将其添加到webpack.config.js中的条目中,然后看起来像这样。

const webpack = require("webpack");
const path = require("path");

module.exports = {
    entry: {
        app: ["babel-polyfill", "formdata-polyfill", "whatwg-fetch", "./Scripts/Modules/index.ts"]
    },
}

在控制台中,我可以看到formdata.min.js已加载。由于错误仍然存​​在,似乎它不应该使用polyfill。它仍然使用失败的默认值。 我怎样才能告诉我的TypeScript代码使用polyfill-version而不是浏览器的默认实现,因为包没有提供任何d.ts个文件?

这甚至可能吗?如果不是 - 这种情况有哪些可行的解决方法?

Dev-Tools IE

这就是FormData对象在开发工具中的样子:

FormData-object

只有append作为方法定义

1 个答案:

答案 0 :(得分:4)

不确定它是否会对您有所帮助,但我今天遇到了这个问题,似乎通过NPM提供的polyfill版本并没有完全覆盖FormData对象,因此不适合IE11或Edge。

我发现切换到库的V3固定了。为此,我从github存储库获取了FormData.js文件的内容,并将其作为组件添加到我自己的自定义JavaScript代码中。

我使用WebPack,还有IE11的其他问题,仍在调查。

让我知道如何通过直接包含内容而不是从NPM获取内容。