Created
September 14, 2015 03:40
-
-
Save abbotto/9fce26db5c3dc83b13f9 to your computer and use it in GitHub Desktop.
Basic Blob Fallback Support
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var __support = { | |
// Blob | |
Blob: !!window.Blob, | |
BlobSlice: !!Blob.prototype.slice, | |
URL: !!window.URL, | |
} | |
var prefixes = ['webkit', 'Webkit', 'WebKit', 'moz', 'Moz', 'o', 'O', 'ms', 'Ms', 'MS', 'khtml', 'Khtml', '']; | |
// Number of prefixes | |
var i = prefixes.length; | |
// Prefix window.URL | |
if(!__support.URL) { | |
// Fallback for BlobBuilder | |
while ((i -= 1) > -1) { | |
window.URL = window.URL || window[prefixes[i] + 'URL']; | |
} | |
} | |
// Prefix Blob.slice | |
if(!__support.BlobSlice) { | |
// Fallback for BlobBuilder | |
while ((i -= 1) > -1) { | |
Blob.prototype.slice = Blob.prototype.slice || Blob.prototype[prefixes[i] + 'Slice']; | |
} | |
} | |
// Simple BlobBuilder fallback for basic Blob usage | |
if(!__support.Blob) { | |
// Prefixes for BlobBuilder | |
while ((i -= 1) > -1) { | |
window.BlobBuilder = window.BlobBuilder || window[prefixes[i] + 'BlobBuilder']; | |
} | |
// BlobBuilder fallback for Blob | |
window.Blob = function(data, obj) { | |
var n; | |
var builder = new BlobBuilder; | |
// Append the data | |
for (n in data) { | |
builder.append(data[n]); | |
} | |
// Return the blob | |
return builder.getBlob((obj && obj.type) ? obj.type : undefined); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment