微信开发者工具有个bug,真机正常
[代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]String.prototype.base64Encode == [代码][代码]'undefined'[代码][代码]) {[代码][代码] [代码][代码]String.prototype.base64Encode = [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]btoa != [代码][代码]'undefined'[代码][代码]) [代码][代码]return[代码] [代码]btoa([代码][代码]this[代码][代码]); [代码][代码]// browser[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]Buffer != [代码][代码]'undefined'[代码][代码]) [代码][代码]return[代码] [代码]new[代码] [代码]Buffer([代码][代码]this[代码][代码], [代码][代码]'utf8'[代码][代码]).toString([代码][代码]'base64'[代码][代码]); [代码][代码]// Node.js[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]Error([代码][代码]'No Base64 Encode'[代码][代码]);[代码][代码] [代码][代码]};[代码][代码] [代码][代码]}[代码] [代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]String.prototype.base64Decode == [代码][代码]'undefined'[代码][代码]) {[代码][代码] [代码][代码]String.prototype.base64Decode = [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]atob != [代码][代码]'undefined'[代码][代码]) [代码][代码]return[代码] [代码]atob([代码][代码]this[代码][代码]); [代码][代码]// browser[代码][代码] [代码][代码]if[代码] [代码]([代码][代码]typeof[代码] [代码]Buffer != [代码][代码]'undefined'[代码][代码]) [代码][代码]return[代码] [代码]new[代码] [代码]Buffer([代码][代码]this[代码][代码], [代码][代码]'base64'[代码][代码]).toString([代码][代码]'utf8'[代码][代码]); [代码][代码]// Node.js[代码][代码] [代码][代码]throw[代码] [代码]new[代码] [代码]Error([代码][代码]'No Base64 Decode'[代码][代码]);[代码][代码] [代码][代码]};[代码][代码] [代码][代码]}[代码] btoa 在开发者工具中未定义,但是atob居然定义了,导致加密库不能用。