• 主页
  • github
  • 简历

兼容不支持HTML5 Blob的浏览器

部分浏览器(webview)不支持HTML5新增的Blob, 会抛出异常TypeError Illegal Constructor, 这种情况可以使用BlobBuilder做兼容处理

封装后的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;
function getBlob(svg) {
let blob = null;
try {
blob = new Blob([svg], { type: 'image/svg+xml' });
} catch (err) {
if (window.BlobBuilder) {
const bb = new window.BlobBuilder();
bb.append([svg]);
blob = bb.getBlob('image/svg+xml');
}
}
return blob;
}