* Loads a given File object via FileReader interface. * * @param {Blob} file Blob object * @param {Function} onload Load event callback * @param {Function} [onerror] Error/Abort event callback * @param {string} [method=readAsDataURL] FileReader method * @returns {FileReader|boolean
(file, onload, onerror, method)
| 58 | * @returns {FileReader|boolean} Returns FileReader if API exists, else false. |
| 59 | */ |
| 60 | function readFile(file, onload, onerror, method) { |
| 61 | if (!$.FileReader) return false |
| 62 | var reader = new FileReader() |
| 63 | reader.onload = function () { |
| 64 | onload.call(reader, this.result) |
| 65 | } |
| 66 | if (onerror) { |
| 67 | reader.onabort = reader.onerror = function () { |
| 68 | onerror.call(reader, this.error) |
| 69 | } |
| 70 | } |
| 71 | var readerMethod = reader[method || 'readAsDataURL'] |
| 72 | if (readerMethod) { |
| 73 | readerMethod.call(reader, file) |
| 74 | return reader |
| 75 | } |
| 76 | } |
| 77 | |
| 78 | /** |
| 79 | * Cross-frame instanceof check. |