siehe http://forum.de.selfhtml.org/archiv/2012/1/t208853/#m1420798.
Ich nutzte was serverseitiges, das könnte heutzutage durchaus auch Javascript sein.
Danke, das sieht ja erst mal so aus, wie dass, was ich suche.
Es funktioniert auch prinzipiell mit allerdings 3 Problemen:
1. er erstellt jedesmal einen Iframe. Den kann man vermutlich unsichtbar machen und bei mehrmaligen klicks recyclen.
oder man benutzt window.open.
2. da ich Textdateien erstellen will, öffnet er die Datei im erstellten Iframe. hier könnte ich einen nicht darstellbaren Mime-Typ nehmen und hoffen, dass der, der den Button klickt, kein Plugin für ebend jenen Mime-Typ hat.
Gibts einen Typen, der sich speziell anbieten würde?
3. Der Dateiname ist äußerst komisch. Hier habe ich noch keinen Würgaround gefunden.
gibts eigentlich stadnard-javascript Funktionen für die Base64 en/decodierung?
schließlich muss die sowiso jeder browser enthalten.
Der code sieht jetzt folgender maßen aus.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Demo</title>
<script type="text/javascript">
function getFileData()
{
return 'SGFsbG8sIGRpZXMgaXN0IGVpbiANCm1laHJ6ZWlsaWdlciBUZXN0dGV4dA==';
}
function genFile(e)
{
var url = "data:application/octet-stream;base64,"+getFileData();
// var ifr=document.createElement("iframe");
// ifr.src=url;
// e.parentNode.appendChild(ifr);
window.open(url,"download File");
return true;
}
</script>
</head>
<body>
<button onclick="genFile(this)">Datei erzeugen</button>
</body>
</html>