??從IE10+瀏覽器開始嘱能,所有瀏覽器就原生提供了Base64編碼、解碼方法伦吠,不僅可以用于瀏覽器環(huán)境妆兑,Service Worker環(huán)境也可以使用。
方法名就是 atob 和 btoa 毛仪,具體語法如下:
window.btoa('china is so nb') // 編碼
"Y2hpbmEgaXMgc28gbmI="
window.atob("Y2hpbmEgaXMgc28gbmI=") // 解碼
"china is so nb"
IE8/IE9的polyfill
??當(dāng)下搁嗓,仍有不少PC項目還需要兼容IE9,所以箱靴,我們可以專門針對這些瀏覽器再引入一段ployfill腳本或者一個JS文件即可腺逛。
<!--[if IE]>
<script src="https://www.zhangxinxu.com/wordpress/2018/08/js-base64-atob-btoa-encode-decode/base64-polyfill.js"></script>
<![endif]-->
[if IE] 表示所有IE瀏覽器,由于IE10+瀏覽器已經(jīng)放棄了著名的IE條件注釋的支持衡怀,Chrome等瀏覽器本身就不支持這個IE私有語法屉来,因此,很天然的狈癞,上面一段script引入只在IE9-瀏覽器下有效。而我們本來就希望只IE8茂契,IE9瀏覽器引入ployfill蝶桶,于是正好完美銜接上。
也就是原生支持atob和btoa方法的瀏覽器認(rèn)為就是一段無需關(guān)心的HTML注釋掉冶,不支持atob和btoa的IE9及其以下瀏覽器則會加載我們的base64-polyfill.js真竖,使瀏覽器也支持 window.btoa 和 window.atob 這個語法。
開源的base64.js 厌小,使用很簡單恢共,瀏覽器引入該JS文件,然后Base64編碼這樣:
Base64.encode('china is so nb'); // 編碼
"Y2hpbmEgaXMgc28gbmI="
解碼就調(diào)用 decode
方法璧亚,如下:
Base64.decode("Y2hpbmEgaXMgc28gbmI="); // 解碼
'china is so nb'