SweetAlert2不适用于IE 11,Promise未定义

问题描述 投票:1回答:1

我正在使用SweetAlert2并且在IE 11上抛出异常:

这个包需要一个Promise库,请在这个浏览器中包含一个垫片以启用它(参见:https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support

因为IE 11不支持Promises,需要手动添加。

我这样使用蓝鸟:

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)');
  }
..

怎么解决?谢谢。

javascript internet-explorer promise sweetalert2
1个回答
1
投票

您可以使用以下方法修复它:

window.Promise = require('bluebird');

这将加载Promise作为窗口的全局变量,而不是像const那样加载文件。

我不确定你的文件结构是怎样的,但是如果你有一个加载所有依赖项的文件,你可以简单地将上面的行添加到将在其他脚本之前调用的脚本中。

例如:

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

// app.js
require('./bootstrap');
Swal.fire(...);
© www.soinside.com 2019 - 2024. All rights reserved.