|
1 | 1 | /* |
2 | | - * JavaScript Canvas to Blob 2.0.1 |
| 2 | + * JavaScript Canvas to Blob 2.0.2 |
3 | 3 | * https://github.com/blueimp/JavaScript-Canvas-to-Blob |
4 | 4 | * |
5 | 5 | * Copyright 2012, Sebastian Tschan |
|
13 | 13 | */ |
14 | 14 |
|
15 | 15 | /*jslint nomen: true, regexp: true */ |
16 | | -/*global window, atob, ArrayBuffer, Uint8Array, define */ |
| 16 | +/*global window, atob, Blob, ArrayBuffer, Uint8Array, define */ |
17 | 17 |
|
18 | 18 | (function (window) { |
19 | 19 | 'use strict'; |
20 | 20 | var CanvasPrototype = window.HTMLCanvasElement && |
21 | 21 | window.HTMLCanvasElement.prototype, |
| 22 | + hasBlobConstructor = function () { |
| 23 | + try { |
| 24 | + return !!new Blob(); |
| 25 | + } catch (e) { |
| 26 | + return false; |
| 27 | + } |
| 28 | + }(), |
22 | 29 | BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || |
23 | | - window.MozBlobBuilder || window.MSBlobBuilder || window.Blob, |
24 | | - dataURLtoBlob = BlobBuilder && window.atob && window.ArrayBuffer && |
25 | | - window.Uint8Array && function (dataURI) { |
| 30 | + window.MozBlobBuilder || window.MSBlobBuilder, |
| 31 | + dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob && |
| 32 | + window.ArrayBuffer && window.Uint8Array && function (dataURI) { |
26 | 33 | var byteString, |
27 | 34 | arrayBuffer, |
28 | 35 | intArray, |
|
44 | 51 | } |
45 | 52 | // Separate out the mime component: |
46 | 53 | mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; |
47 | | - if(window.Blob && !BlobBuilder.prototype.append) { |
48 | | - try { |
49 | | - // Safari 6+ |
50 | | - return new Blob([arrayBuffer],{type:mimeString}); |
51 | | - } catch(e) {} |
52 | | - } |
53 | 54 | // Write the ArrayBuffer to a blob: |
| 55 | + if (hasBlobConstructor) { |
| 56 | + return new Blob([arrayBuffer], {type: mimeString}); |
| 57 | + } |
54 | 58 | bb = new BlobBuilder(); |
55 | 59 | bb.append(arrayBuffer); |
56 | 60 | return bb.getBlob(mimeString); |
|
0 commit comments