How to create a file in memory for user to download, but not through server? How to create a file in memory for user to download, but not through server? javascript javascript

How to create a file in memory for user to download, but not through server?


Simple solution for HTML5 ready browsers...

function download(filename, text) {  var element = document.createElement('a');  element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));  element.setAttribute('download', filename);  element.style.display = 'none';  document.body.appendChild(element);  element.click();  document.body.removeChild(element);}
form * {  display: block;  margin: 10px;}
<form onsubmit="download(this['name'].value, this['text'].value)">  <input type="text" name="name" value="test.txt">  <textarea name="text"></textarea>  <input type="submit" value="Download"></form>