SweetAlert2 не работает в IE 11, Promise не определен - PullRequest
1 голос
/ 08 апреля 2019

Я использую SweetAlert2 и в IE 11 выдает исключение:

Для этого пакета требуется библиотека Promise, пожалуйста, включите прокладку, чтобы включить его в этом браузере (см .: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)

Поскольку IE 11 не поддерживает Promises и должен быть добавлен вручную.

Я использую Bluebird примерно так:

const Promise = require('bluebird');
const Swal = require('sweetalert2');

Swal.fire(...)
...

Но все же проверка Sweetalert нене прошло:

..
  if (typeof Promise === 'undefined') {
    error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');
  }
..

Как это исправить? Спасибо.

1 Ответ

1 голос
/ 08 апреля 2019

Вы можете исправить это с помощью следующего:

window.Promise = require('bluebird');

Это будет загружать Promise как глобальную переменную вашего окна вместо файла, как вы сделали с const.

Я не уверен, какова ваша файловая структура, но если у вас есть файл, который загружает все зависимости, вы можете просто добавить строку выше в скрипт, который будет вызываться перед вашими другими скриптами.

Например:

// bootstrap.js
window.Promise = require('bluebird');
window.Swal = require('sweetalert2');

// app.js
require('./bootstrap');
Swal.fire(...);
...