From c71508b5e2d2998bdaca0cb13ee45d780ddafeb0 Mon Sep 17 00:00:00 2001 From: minj <4mr.minj@gmail.com> Date: Sat, 22 Feb 2014 20:29:11 +0200 Subject: [PATCH 1/2] test for existence of navigator --- FileSaver.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/FileSaver.js b/FileSaver.js index 360f8ae..cc9cdda 100644 --- a/FileSaver.js +++ b/FileSaver.js @@ -14,12 +14,14 @@ var saveAs = saveAs // IE 10+ (native saveAs) - || (navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator)) + || (typeof navigator !== "undefined" && + navigator.msSaveOrOpenBlob && navigator.msSaveOrOpenBlob.bind(navigator)) // Everyone else || (function(view) { "use strict"; // IE <10 is explicitly unsupported - if (/MSIE [1-9]\./.test(navigator.userAgent)) { + if (typeof navigator !== "undefined" && + /MSIE [1-9]\./.test(navigator.userAgent)) { return; } var From e81a06bcbadec586e5014b470d104bcf5ca185f5 Mon Sep 17 00:00:00 2001 From: minj <4mr.minj@gmail.com> Date: Sat, 22 Feb 2014 20:29:50 +0200 Subject: [PATCH 2/2] add saveAs.unload to prevent memleaks --- FileSaver.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/FileSaver.js b/FileSaver.js index cc9cdda..112efb0 100644 --- a/FileSaver.js +++ b/FileSaver.js @@ -230,6 +230,10 @@ var saveAs = saveAs null; view.addEventListener("unload", process_deletion_queue, false); + saveAs.unload = function() { + process_deletion_queue(); + view.removeEventListener("unload", process_deletion_queue, false); + }; return saveAs; }( typeof self !== "undefined" && self