Download tekst

Det er muligt at få JavaScript til at sige til browseren at den skal downloade en file, uden at skulle kalde på serveren. Hvorfor kan dette være smart? For eksempel vis der er en tekst boks hvor brugeren har skrevet en masse og vil nu gerne gemme det på computeren, så vil det være ressource krævende at sende alt teksten til serveren som der efter sender det tilbage. Det vil derfor være bedre at Downloade teksten uden at skulle kalde på serveren. Dette kan gøres meget simpelt med JavaScript. Det virker altså også når brugeren mister internet forbindelse🤓

Dette kode tillader brugeren at downloade filer uden at kalde på serveren.

function downloadFile(fileName, file) {
  var a = document.createElement('a'),
  url = window.URL;
  a.href = url.createObjectURL(file);
  a.download = fileName;
  a.dispatchEvent(new MouseEvent('click'));
  url.revokeObjectURL(a.href);
}

Hvis du kun er ude efter at kunne downloade tekst, så er dette kode bedre.

function downloadText(fileName, text) {
  var a = document.createElement('a');
  a.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(text);
  a.download = fileName;
  a.dispatchEvent(new MouseEvent('click'));
}