2010-03-25 10 views
9
var doc = w.document; 
doc.open('application/CSV','replace'); 
doc.charset = "utf-8"; 
doc.write("all,hello"); 
doc.close(); 

if(doc.execCommand("SaveAs",null,"file.csv")) { 
    window.alert("saved "); 
}else { 
    window.alert("cannot be saved"); 
} 

no funciona en IE 8ExecCommand ("Guardar como", null, "file.csv") no funciona en IE8

pero woks en IE 6

¿cuál es el problema? está alertando "no se puede guardar"

help me !!! De antemano gracias

+0

http://social.msdn.microsoft.com/Forums/en-NZ/iewebdevelopment/thread/1b8bfc9d-0746-4bc4-b7ca-9ebe3132877b – jholster

+1

Esto es casi seguro un permiso problema. ¿De dónde viene este código? En otras palabras, ¿cuál es la URL de la página que tiene este código? – Pointy

+0

html table está en un archivo html y el código anterior proviene del archivo javascript que se encuentra en el directorio javascript (/js/bug_list.js) – Anbu

Respuesta

10

El problema parece ser causado por un viejo error que fue corregido en Windows XP, pero es aparentemente sin parchear en mi Windows 7. De http://support.microsoft.com/kb/929863:

Este problema se produce debido a una limitación en el Función ExecCommand. Cuando ejecuta el script que usa la función ExecCommand junto con el comando SaveAs, el script solo puede guardar un archivo que sea del tipo de archivo de texto.

Efectivamente, cambie la extensión de archivo a ".txt" y mire cómo funciona mágicamente en IE8.

La única solución que se le viene a la mente es tener un lenguaje del lado del servidor para crear el archivo CSV y publicarlo como descarga (usando el encabezado Content-disposition: attachment).

+0

muy gracias por su respuesta – Anbu

+0

Como dijo, está funcionando cuando lo guardamos como " TXT". si encuentran algún truco, pueden publicar la idea, ya que tengo que hacerlo desde el lado del cliente. avance gracias – Anbu

+0

http://4umi.com/web/javascript/filewrite.php revise este enlace y si es posible ayúdeme – Anbu

0

Si usted podría hacer este lado de procesamiento del servidor con PHP o .NET o Java o algo así, en las cabeceras http establecidas:

Content-Disposition: attachment; filename=file.csv 

que, por desgracia no se puede hacer a partir de JavaScript.

+0

gracias por la respuesta tímida !! pero no puedo hacer nada en el servidor así que por favor brinde una solución en el lado del cliente. ¿Hay alguna razón específica para que no funcione en IE8? – Anbu

+0

Pruebe la sugerencia de Andy E, cambie la extensión de archivo a txt. –

3

Sé que este es un hilo muy viejo, pero también me enfrenté a este problema. Puede solucionarlo agregando el siguiente valor (según la extensión del archivo descargado) a su registro.

E.g. para el archivo .csv:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\.csv] 
"PerceivedType"="document" 

@MICROSOFT: Shame on you; el problema parece estar todavía sin parchear :-)

+0

Funciona como un encanto.Tuve el mismo problema, pero en mi caso funcionaba en algún sistema y no funcionaba en algunos sistemas. – Ace

Cuestiones relacionadas