Skip to content

Commit 6260f9c

Browse files
authored
Merge pull request scratchfoundation#5101 from LLK/file-download-safari
Allow some kind of downloading to work on iOS Safari
2 parents dd90ec8 + 28cda95 commit 6260f9c

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/lib/download-blob.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,23 @@ export default (filename, blob) => {
88
return;
99
}
1010

11-
const url = window.URL.createObjectURL(blob);
12-
downloadLink.href = url;
13-
downloadLink.download = filename;
14-
downloadLink.type = blob.type;
15-
downloadLink.click();
16-
window.URL.revokeObjectURL(url);
17-
document.body.removeChild(downloadLink);
11+
if ('download' in HTMLAnchorElement.prototype) {
12+
const url = window.URL.createObjectURL(blob);
13+
downloadLink.href = url;
14+
downloadLink.download = filename;
15+
downloadLink.type = blob.type;
16+
downloadLink.click();
17+
document.body.removeChild(downloadLink);
18+
window.URL.revokeObjectURL(url);
19+
} else {
20+
// iOS Safari, open a new page and set href to data-uri
21+
let popup = window.open('', '_blank');
22+
const reader = new FileReader();
23+
reader.onloadend = function () {
24+
popup.location.href = reader.result;
25+
popup = null;
26+
};
27+
reader.readAsDataURL(blob);
28+
}
29+
1830
};

0 commit comments

Comments
 (0)