diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/assets/js/vendor/FileSaver.js (renamed from docs/assets/js/vendor/filesaver.js) | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/docs/assets/js/vendor/filesaver.js b/docs/assets/js/vendor/FileSaver.js index e7c05d593..109587301 100644 --- a/docs/assets/js/vendor/filesaver.js +++ b/docs/assets/js/vendor/FileSaver.js @@ -1,6 +1,6 @@ /* FileSaver.js * A saveAs() FileSaver implementation. - * 2014-07-21 + * 2014-08-29 * * By Eli Grey, http://eligrey.com * License: X11/MIT @@ -31,7 +31,7 @@ var saveAs = saveAs return 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 + , can_use_save_link = "download" in save_link , click = function(node) { var event = doc.createEvent("MouseEvents"); event.initMouseEvent( @@ -53,13 +53,18 @@ var saveAs = saveAs // the reasoning behind the timeout and revocation flow , arbitrary_revoke_timeout = 10 , revoke = function(file) { - setTimeout(function() { + var revoker = function() { if (typeof file === "string") { // file is an object URL get_URL().revokeObjectURL(file); } else { // file is a File file.remove(); } - }, arbitrary_revoke_timeout); + }; + if (view.chrome) { + revoker(); + } else { + setTimeout(revoker, arbitrary_revoke_timeout); + } } , dispatch = function(filesaver, event_types, event) { event_types = [].concat(event_types); @@ -95,7 +100,11 @@ var saveAs = saveAs if (target_view) { target_view.location.href = object_url; } else { - view.open(object_url, "_blank"); + var new_tab = view.open(object_url, "_blank"); + if (new_tab == undefined && typeof safari !== "undefined") { + //Apple do not allow window.open, see http://bit.ly/1kZffRI + view.location.href = object_url + } } filesaver.readyState = filesaver.DONE; dispatch_all(); |
