首页 > 代码库 > TypeError: BlobBuilder is not a constructor

TypeError: BlobBuilder is not a constructor

var BlobBuilder = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder;var bb = new BlobBuilder();bb.append(arr.stString());

今天在chrome浏览器中这样使用时,出线错误TypeError: BlobBuilder is not a constructor。

解决:

0down voteacceptedGot it working with your code. I only had to change some little detail:if(e.name == ‘TypeError‘ && window.BlobBuilder){        var bb = new BlobBuilder();        bb.append(data);        out = bb.getBlob(datatype);        console.debug("case 2");    }bb.append(data); // data must be with no bracketsMy function(constructor) that works now for all browsers:var NewBlob = function(data, datatype){    var out;    try {        out = new Blob([data], {type: datatype});        console.debug("case 1");    }    catch (e) {        window.BlobBuilder = window.BlobBuilder ||                window.WebKitBlobBuilder ||                window.MozBlobBuilder ||                window.MSBlobBuilder;        if (e.name == ‘TypeError‘ && window.BlobBuilder) {            var bb = new BlobBuilder();            bb.append(data);            out = bb.getBlob(datatype);            console.debug("case 2");        }        else if (e.name == "InvalidStateError") {            // InvalidStateError (tested on FF13 WinXP)            out = new Blob([data], {type: datatype});            console.debug("case 3");        }        else {            // We‘re screwed, blob constructor unsupported entirely               console.debug("Errore");        }    }    return out;}

 

TypeError: BlobBuilder is not a constructor