2013-03-19 251 views
1

我想从Chrome扩展内的画布图像中创建一个Blob,但是当尝试使用Chrome扩展创建Blob时,出现错误“未捕获的TypeError:对象不是函数”任何方法!Chrome扩展Blob数据问题

var blob = new Blob(); 
var blob = new Blob(['body { color: red; }'], {type: 'text/css'}); 

是两个失败并出现上述错误的示例。其实我想一个DataURL转换成团块,所以我使用(这也失败)是代码...

function dataURItoBlob(dataURI) { 
    'use strict' 
    var byteString, 
     mimestring 

    if(dataURI.split(',')[0].indexOf('base64') !== -1) { 
     byteString = atob(dataURI.split(',')[1]) 
    } else { 
     byteString = decodeURI(dataURI.split(',')[1]) 
    } 

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

    var content = new Array(); 
    for (var i = 0; i < byteString.length; i++) { 
     content[i] = byteString.charCodeAt(i) 
    } 

    return new Blob([new Uint8Array(content)], {type: mimestring}); 
} 

我假设Chrome浏览器不会支持新的斑点?

回答

1

问题在于创建Blob的调用是从JS文件完成的,正确的位置是背景JavaScript文件。通过将创建blob的方法移动到后台文件中,我可以使用它。