如何测试Canvas.toBlob()是否失败

时间:2016-09-07 15:16:19

标签: javascript canvas html5-canvas

使用canvas.toBlob(callback, ...),我将几个大画布元素(2048x2048像素)转换为png。

但是,至少在Chrome中,并不总是调用回调。 Chrome Devtools中没有生成错误。

我的问题:

  1. 是否有办法检查toBlob()是否失败,除了 x 秒后超时?
  2. toBlob()在哪些条件下失败?我如何知道哪些条件未得到满足?如何收到错误消息?
  3. 我正在使用的代码:

    function trigger_browser_download(blob, fileName) { "use strict";
        var url = window.URL.createObjectURL(blob);
        a.href = url;
        a.download = fileName;
        a.click();
        window.URL.revokeObjectURL(url);
    };
    
    function download_canvas(canvas, filename) { "use strict";
        canvas.toBlob(function(blob) {
            debugger; // not always reached
            if(blob instanceof Blob) {
                trigger_browser_download(blob, filename);
            } else {
                console.error("error generating blob");
            }
        }, 'application/octet-binary'); 
    }
    
    for(var i = 0; i < 10; ++i) {
        var canvas = document.createElement('canvas');
        canvas.height = 2048;
        canvas.width = 2048;
        download_canvas(canvas, i + ".png");
    
    }
    

0 个答案:

没有答案
相关问题