2013-03-19 55 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的方法移動到後臺文件中,我可以使用它。