相关疑难解决方法(0)

无法在'Window'上执行'atob'

当用户按下ctrl + s按键但Chrome崩溃时,我正在尝试将我的HTML文件保存在Chrome中.

(我只想下载我的HTML文件的源代码)

我读到它发生是因为我的文件大于1.99M ..

在第一次尝试中(在我知道Chrome崩溃之前):

function download(filename, text) {
    var pom = document.createElement('a');
    pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
    pom.setAttribute('download', filename);
    pom.click();
}

download('test.html', "<html>" + document.getElementsByTagName('html')[0].innerHTML + "</html>");
Run Code Online (Sandbox Code Playgroud)

在我读到关于崩溃的第二次尝试之后,我使用了blob:

function dataURItoBlob(dataURI) {
    var byteString = atob(dataURI.split(',')[1]);

    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]

    var ab = new ArrayBuffer(byteString.length);
    var ia = new Uint8Array(ab);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }

    var bb = new BlobBuilder();
    bb.append(ab);
    return bb.getBlob(mimeString);
}

function download(dataURI) …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery

28
推荐指数
4
解决办法
7万
查看次数

无法在“窗口”上执行“atob”:要解码的字符串未正确编码

我正在尝试将数据 URI 转换为图像数据,但遇到此错误:

无法在“窗口”上执行“atob”:要解码的字符串未正确编码

功能:

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(',');
  var mime = arr[0].match(/:(.*?);/)[1];
  var bstr = window.atob(arr[1]);
  var n = bstr.length;
  var u8arr = new Uint8Array(n);

  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {
    type: mime
  });
}
Run Code Online (Sandbox Code Playgroud)

数据网址是:

SRC =“数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQVR4Xmy9edRl6VXe95z5nHvuvd9Uc5W6q9WSWiOSGISEmCQmx2ZKCAtjsryygv9JVsY / SGwSRw54GezYBiHANEkV7WeKQBWriul64VufPLj2vMCbSUTqQU5OAPx2lIl + S0qZWAskN2jLhaZ5ioaZRZBgMbG1AL ...

javascript blob

5
推荐指数
0
解决办法
1万
查看次数

标签 统计

javascript ×2

blob ×1

html ×1

jquery ×1