我在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靠前。
最后测试各个浏览器都正常了 :)