Vì Blobbuilder không được dùng nữa và gần đây tôi đã quyết định sử dụng API nhận dạng khuôn mặt mới, tôi đang gặp khó khăn khi chuyển sang chỉ "đốm".Làm thế nào để thay thế BlobBuilder không được chấp nhận bằng hàm tạo Blob mới?
function dataURItoBlob(dataURI, callback) {
// convert base64 to raw binary data held in a string
// doesn't handle URLEncoded DataURIs
var byteString;
if (dataURI.split(',')[0].indexOf('base64') >= 0) {
byteString = atob(dataURI.split(',')[1]);
} else {
byteString = unescape(dataURI.split(',')[1]);
}
// separate out the mime component
var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
// write the ArrayBuffer to a blob, and you're done
var BlobBuilder = window.WebKitBlobBuilder || window.MozBlobBuilder;
var bb = new BlobBuilder();
bb.append(ab);
return bb.getBlob(mimeString);
}
Tôi đã cố gắng chuyển đổi nó sang chỉ:
// write the ArrayBuffer to a blob, and you're done
var Blob = window.URL || window.webkitURL;
var bb = new Blob();
/*var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = window.URL.createObjectURL(blob);
document.body.appendChild(link);*/
/*var BlobBuilder = window.WebKitBlobBuilder || window.MozBlobBuilder;
var bb = new BlobBuilder();
bb.append(ab);*/
return bb.getBlob(mimeString);
}
Nhưng tôi tiếp tục nhận được Uncaught TypeError: Object #<URL> has no method 'getBlob'
trong giao diện điều khiển. Không chắc chắn những gì tôi đang thiếu. Nếu tôi cố gắng sử dụng bb.append(ab);
tôi nhận được Uncaught TypeError: Object #<Blob> has no method 'append'
trong bảng điều khiển.
Trong bản cập nhật bài đăng của tôi, tôi đã thử mã của bạn và nhận được 'Loại lỗi không xác định: không xác định không phải là chức năng' – shayward
@shayward Sử dụng mã trong câu trả lời của tôi mà không có bất kỳ sửa đổi nào: Lấy chức năng ban đầu của bạn và thay thế dòng cuối cùng ('var BlobBuilder ......}') với mã của tôi. –
Cảm ơn các công trình, chỉ là một lỗi sau khi gõ: mimeString. Thiếu khung đóng. Nhưng trong tương lai, điều này có bị loại bỏ không? – shayward