actualización:
Tiempo sin duda cambia las cosas ;-) La primera vez que respondieron a esta pregunta IE8 fue la última versión del navegador IE disponible (nov 2010) y por lo tanto no había manera de navegadores de lograr esto sin un viaje redondo al servidor o utilizando una herramienta que requiera Flash.
@Zectburno's answer obtendrá lo que necesita ahora, sin embargo, para el contexto histórico, tenga en cuenta qué navegadores IE admiten qué característica.
- btoa() está definido en IE8 e IE9
- Blob está disponible en IE10 +
Asegúrese de probar en los navegadores que necesita para apoyar. Aunque el ejemplo de Blob en la otra respuesta debería funcionar en IE10 +, no funciona para mí simplemente haciendo clic en el enlace (el navegador no hace nada, no hay error) ... solo si hago clic derecho y guardo el objetivo como "file.csv", entonces vaya al archivo y haga doble clic en él. ¿Puedo abrir el archivo?
Test both approaches (btoa/Blob) in this JSFiddle. (aquí está el código)
<!doctype html>
<html>
<head>
</head>
<body>
<a id="a" target="_blank">Download CSV (via btoa)</a>
<script>
var csv = "a,b,c\n1,2,3\n";
var a = document.getElementById("a");
a.href = "data:text/csv;base64," + btoa(csv);
</script>
<hr/>
<a id="a2" download="Download.csv" type="text/csv">Download CSV (via Blob)</a>
<script>
var csv = "a,b,c\n1,2,3\n";
var data = new Blob([csv]);
var a2 = document.getElementById("a2");
a2.href = URL.createObjectURL(data);
</script>
</body>
</html>
respuesta original:
No creo que hay una opción disponible para esto.
Me limitaría a ajustar su código de modo que si se detecta Flash 10+ (93% saturation as of September 2009) en el sistema del usuario, proporcione la opción Downloadify, de lo contrario recurrirá a una solicitud del lado del servidor.
puede ser invocada dowloadify de javascript? Sería difícil crear un botón de flash para adaptarse a mi diseño. –
@ TomášZato sí puede ser invocado por JavaScript: https://github.com/dcneiner/Downloadify – scunliffe
A no veo cómo es esa una respuesta a mi pregunta. He leído la "documentación", sin embargo, mi pregunta era si la descarga se puede desencadenar desde JavaScript. Desafortunadamente [imposible] (https://github.com/dcneiner/Downloadify/issues/20) - se debe hacer clic en el botón Downloadify. –