Download data URL file
If you also want to give a suggested name to the file (instead of the default 'download') you can use the following in Chrome, Firefox and some IE versions:
function downloadURI(uri, name) { var link = document.createElement("a"); link.download = name; link.href = uri; document.body.appendChild(link); link.click(); document.body.removeChild(link); delete link;}
And the following example shows it's use:
downloadURI("data:text/html,HelloWorld!", "helloWorld.txt");
function download(dataurl, filename) { const link = document.createElement("a"); link.href = dataurl; link.download = filename; link.click();}download("data:text/html,HelloWorld!", "helloWorld.txt");
or:
function download(url, filename) { fetch(url) .then(response => response.blob()) .then(blob => { const link = document.createElement("a"); link.href = URL.createObjectURL(blob); link.download = filename; link.click(); }) .catch(console.error);}download("https://get.geojs.io/v1/ip/geo.json","geoip.json")download("data:text/html,HelloWorld!", "helloWorld.txt");
Ideas:
Try a
<a href="data:...." target="_blank">
(Untested)Use downloadify instead of data URLs (would work for IE as well)