Update FileSaver

master
Daniel Berteaud 11 years ago
parent 87c6cdc62c
commit 28f01743d8
  1. 24
      public/js/FileSaver.js

@ -1,10 +1,10 @@
/*! FileSaver.js
/* FileSaver.js
* A saveAs() FileSaver implementation.
* 2014-01-24
* 2014-05-27
*
* By Eli Grey, http://eligrey.com
* License: X11/MIT
* See LICENSE.md
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
*/
/*global self */
@ -26,11 +26,10 @@ var saveAs = saveAs
}
var
doc = view.document
// only get URL when necessary in case BlobBuilder.js hasn't overridden it yet
// only get URL when necessary in case Blob.js hasn't overridden it yet
, get_URL = function() {
return view.URL || view.webkitURL || view;
}
, URL = view.URL || view.webkitURL || view
, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
, can_use_save_link = !view.externalHost && "download" in save_link
, click = function(node) {
@ -56,7 +55,7 @@ var saveAs = saveAs
while (i--) {
var file = deletion_queue[i];
if (typeof file === "string") { // file is an object URL
URL.revokeObjectURL(file);
get_URL().revokeObjectURL(file);
} else { // file is a File
file.remove();
}
@ -123,20 +122,9 @@ var saveAs = saveAs
}
if (can_use_save_link) {
object_url = get_object_url(blob);
// FF for Android has a nasty garbage collection mechanism
// that turns all objects that are not pure javascript into 'deadObject'
// this means `doc` and `save_link` are unusable and need to be recreated
// `view` is usable though:
doc = view.document;
save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a");
save_link.href = object_url;
save_link.download = name;
var event = doc.createEvent("MouseEvents");
event.initMouseEvent(
"click", true, false, view, 0, 0, 0, 0, 0
, false, false, false, false, 0, null
);
save_link.dispatchEvent(event);
click(save_link);
filesaver.readyState = filesaver.DONE;
dispatch_all();
return;

Loading…
Cancel
Save