From 9f7e52a419d04926bec0c950c7c3adcf93d819fd Mon Sep 17 00:00:00 2001 From: Paul Kaplan Date: Fri, 27 Apr 2018 17:01:09 -0400 Subject: [PATCH] Use special method for downloading blobs in Edge --- src/containers/project-saver.jsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/containers/project-saver.jsx b/src/containers/project-saver.jsx index 4886ee639..0c755c853 100644 --- a/src/containers/project-saver.jsx +++ b/src/containers/project-saver.jsx @@ -29,15 +29,21 @@ class ProjectSaver extends React.Component { document.body.appendChild(saveLink); this.props.vm.saveProjectSb3().then(content => { - const url = window.URL.createObjectURL(content); - - saveLink.href = url; - // TODO user-friendly project name // File name: project-DATE-TIME const date = new Date(); const timestamp = `${date.toLocaleDateString()}-${date.toLocaleTimeString()}`; - saveLink.download = `untitled-project-${timestamp}.sb3`; + const filename = `untitled-project-${timestamp}.sb3`; + + // Use special ms version if available to get it working on Edge. + if (navigator.msSaveOrOpenBlob) { + navigator.msSaveOrOpenBlob(content, filename); + return; + } + + const url = window.URL.createObjectURL(content); + saveLink.href = url; + saveLink.download = filename; saveLink.click(); window.URL.revokeObjectURL(url); document.body.removeChild(saveLink);