window.atob兼容性写法

window.atob 是 JavaScript 中用于将 base64 编码的字符串解码为原始字符串的方法。它在大多数现代浏览器中都得到支持,但在一些旧版本的浏览器中可能不被支持。

为了兼容性,可以使用以下代码来检测浏览器是否支持 window.atob 方法,并提供替代实现:

if (!window.atob) {
  window.atob = function(encodedString) {
    var base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
    var decodedString = '';
    var currentChar, charCode1, charCode2, charCode3, encIndex1, encIndex2, encIndex3, encIndex4;

    for (var i = 0; i < encodedString.length; i += 4) {
      encIndex1 = base64Chars.indexOf(encodedString[i]);
      encIndex2 = base64Chars.indexOf(encodedString[i + 1]);
      encIndex3 = base64Chars.indexOf(encodedString[i + 2]);
      encIndex4 = base64Chars.indexOf(encodedString[i + 3]);

      charCode1 = (encIndex1 << 2) | (encIndex2 >> 4);
      charCode2 = ((encIndex2 & 15) << 4) | (encIndex3 >> 2);
      charCode3 = ((encIndex3 & 3) << 6) | encIndex4;

      decodedString += String.fromCharCode(charCode1);

      if (encIndex3 !== 64) {
        decodedString += String.fromCharCode(charCode2);
      }
      if (encIndex4 !== 64) {
        decodedString += String.fromCharCode(charCode3);
      }
    }

    return decodedString;
  };
}

这段代码会先检测 window.atob 方法是否存在,如果不存在,则定义一个替代实现。这个替代实现会根据 base64 字符串的编码规则来逐个解码字符,并将解码后的字符拼接成最终的原始字符串。注意,这只是一个简单的替代实现,可能不如浏览器原生的方法效率高

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值