2010-03-25 13 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"); 
} 

non funziona in IE 8ExecCommand ("SaveAs", null, "file.csv") non funziona in IE8

ma woks in IE 6

qual è il problema? sta avvisando "non può essere salvato"

help me !!! anticipo grazie

+0

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

+1

Questo è quasi certamente un permesso problema. Da dove viene questo codice? In altre parole, qual è l'URL della pagina che contiene questo codice? La tabella html – Pointy

+0

è in un file html e il codice precedente proviene dal file javascript che si trova nella directory javascript (/js/bug_list.js) – Anbu

risposta

10

Il problema sembra essere causato da un vecchio bug che è stato risolto in Windows XP, ma è apparentemente privo di patch nel mio Windows 7. Da http://support.microsoft.com/kb/929863:

Questo problema si verifica a causa di una limitazione nel Funzione ExecCommand. Quando si esegue lo script che utilizza la funzione ExecCommand insieme al comando SaveAs, lo script può solo salvare un file che è il tipo di file di testo.

Abbastanza sicuro, modificare l'estensione del file in ".txt" e guardarlo funzionare magicamente in IE8.

L'unica soluzione che viene in mente è quella di avere un linguaggio lato server per creare il file CSV e pubblicarlo come download (utilizzando l'intestazione Content-disposition: attachment).

+0

molto grazie per la risposta – Anbu

+0

Come hai detto, funziona quando lo salviamo come " testo". se voi ragazzi trovate qualche trucco, potete postare l'idea come devo farlo dal lato client !! anticipo grazie – Anbu

+0

http://4umi.com/web/javascript/filewrite.php controlla questo link e se possibile aiutami – Anbu

0

Se si potesse fare questa parte di elaborazione del server con PHP o .NET o Java o qualcosa, nelle intestazioni HTTP fissati:

Content-Disposition: attachment; filename=file.csv 

Che, purtroppo, non si può fare da JavaScript.

+0

grazie per la risposta timida !! ma non posso fare nulla in serveride quindi per favore dare una soluzione sul lato client. C'è qualche ragione specifica per cui non funzionerà in IE8? – Anbu

+0

Prova il suggerimento di Andy E, cambia l'estensione del file in txt. –

3

So che questo è un thread molto vecchio, ma ho anche affrontato questo problema. È possibile risolvere il problema aggiungendo il seguente valore (in base all'estensione del file scaricato) al registro.

E.g. per .csv:

Windows Registry Editor Version 5.00 

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

@MICROSOFT: Vergogna su di voi; il problema sembra essere ancora privo di patch :-)

+0

Funziona come un fascino.Ho avuto lo stesso problema ma nel mio caso funzionava in alcuni sistemi e non funzionava in alcuni sistemi. – Ace