Reputation: 29
I'm working on a project that randomly generates a set of characters intended to be used for a password and want the user to be able to download the results as a text file. I've read some things on BLOBs and a few other methods that haven't worked. It'd be a big help if someone could offer a method that works.
TL;DR: Need a way to download text from an HTML textarea as a .txt file using JS
Upvotes: -1
Views: 1748
Reputation: 27275
You should be able to programmatically create a link that uses a data url with your text, add a download
attribute so the browser downloads instead of navigating (and to specify a filename), and click it.
This doesn't run as a SO snippet, presumably for security reasons, but it should work out in the world (and you can copy/paste this in your dev tools console to test it):
const generatedText = 'some generated blob of text';
// create an anchor element that we can programmatically click
const a = document.createElement('a');
// set up a data uri with the text
a.href = `data:text/plain,${generatedText}`;
// set the download attribute so it downloads and uses this as a filename
a.download = 'the-name-of-the-file.txt';
// stick it in the document
document.body.appendChild(a);
// click it
a.click();
Upvotes: 3