我在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靠前。
最后測試各個瀏覽器都正常了 :)