Как указано в официальной документации, IE11 не поддерживает FormData
вообще или, по крайней мере, недостаточно, мне нужно.
Внутри моего кода мне нужно перебирать элементы элемента FormData
. Для этой задачи я использую функцию entries()
которая не работает в IE, давая мне ошибку
Объект не поддерживает атрибуты свойств или методов '
Я уже добавил https://github.com/jimmywarting/FormData через npm в свой проект и добавил его к моей записи в 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
. По мере того как ошибка все еще происходит, кажется, что она не использует полиполк, как следует. Он по-прежнему использует значение по умолчанию, которое не выполняется. Как я могу сказать, что мой код TypeScript
использует версию polyfill вместо версии браузера по умолчанию, поскольку пакет не содержит никаких файлов d.ts
?
Возможно ли это? Если нет - какие возможные обходные пути для такого сценария?
Это то, что FormData
объект FormData
в dev-tools:
который append
только как метод
Не уверен, что это может помочь вам, но я получил эту проблему сегодня, и кажется, что версия полиполния, предоставляемая через NPM, не полностью переопределяет объект FormData, поэтому не подходит для IE11 или Edge.
Я нашел, что переключение на V3 библиотеки исправлено. Для этого я получил содержимое файла FormData.js из репозитория github и добавил его как компонент в свой собственный код JavaScript.
Я использую WebPack, чтобы получить некоторые другие проблемы с IE11, все еще исследуя.
Дайте мне знать, как это происходит, включив контент напрямую, а не получая его от NPM.
polyfill.js
с кодом по ссылке, который включен перед всем остальным javascript-кодом, но все равно получаю ту же ошибку.