升级sweetAlert 到2.0后可能遇到某些问题

我在chrome Dev模拟器测试一切正常,安卓微信浏览器测试也正常,但是在UC浏览器测试发现弹层硬是调用不出来,刚开始我还以为写的js有语法兼容问题,不过后来发现2.0版本是用TypeScript写的,然后是用babel编译成浏览器端的js......所以很多新特性API有些旧浏览器是不完全支持的。

我是直接克隆https://github.com/t4t5/sweetalert下来编译丢到生产环境里的,作者已经编译后的sweetalert我没测试过。
解决办法:

  • 引入babel-polyfill
    npm install babel-polyfill --save
    然后在sweetalert/src/sweetalert.js 引入它 require("babel-polyfill");
  • 引入promise-polyfill
    https://github.com/taylorhakes/promise-polyfill
    然后在sweetalert/src/sweetalert.js 引入它 require("promise-polyfill");

最后重新编译:
npm run build (sweetalert/dist/sweetalert.min.js就是最终文件了)

还有简单点的就是直接在页面预先引入babel-polyfill和promise-polyfill
http://www.bootcdn.cn/babel-polyfill/ 版本选6.26.0

https://github.com/taylorhakes/promise-polyfill 复制promise.min.js

注意:这个两个文件引入顺序要比sweetalert.min.js靠前。

最后测试各个浏览器都正常了 :)

推荐阅读更多精彩内容