2012-06-19 17 views
11

voglio creare il file di testo in locale, quando navigo in Google Chrome clic del pulsante che mostra errore come ActiveXObject non è definito e quando navigo in clic di safari sul pulsante che mostra errore come impossibile trovare la variabile: ActiveXObject. uno può aiutare me.how posso realizzare e creare il file .ThanqActiveXObject non è definito e non è in grado di trovare la variabile: ActiveXObject

<script> 
     function createFile() {  
     var object = new ActiveXObject("Scripting.FileSystemObject");  
     var file = object.CreateTextFile("C:\\Hello.txt", true); 
     file.WriteLine('Hello World'); 
     alert('Filecreated'); 
     file.WriteLine('Hope is a thing with feathers, that perches on the soul.'); 
     file.Close(); 
     } 
    </script> 
<input type="Button" value="Create File" onClick='createFile()'> 
+2

Anche su IE, se si esegue questa operazione da una pagina servita via HTTP, si otterranno blocchi di sicurezza. –

risposta

15

ActiveXObject è disponibile solo su browser IE. Così ogni altra useragent genera un errore

Sul browser moderno si potrebbe usare al posto File API o File writer API (attualmente implementato only on Chrome)

+0

L'API del file è di sola lettura, quindi non è possibile. – Quentin

+0

Giusto, ho migliorato la mia risposta, grazie. – fcalderan

+0

Grazie per la risposta. –

8

ActiveXObject è non standard e supportato solo da Internet Explorer in Windows.

Non esiste un modo cross-browser nativo per scrivere sul file system senza utilizzare plugin, anche la bozza File API dà accesso in sola lettura.

Se si desidera lavorare su più piattaforme, è necessario considerare le applet Java firmate (tenendo presente che funzionerà solo su piattaforme per le quali è disponibile il runtime Java).

2

Un'app Web può richiedere l'accesso a un file system sandbox chiamando window.requestFileSystem(). Funziona in Chrome.

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 
var fs = null; 

window.requestFileSystem(window.TEMPORARY, 1024 * 1024, function (filesystem) { 
    fs = filesystem; 
}, errorHandler); 

fs.root.getFile('Hello.txt', { 
    create: true 
}, null, errorHandler); 

function errorHandler(e) { 
    var msg = ''; 

    switch (e.code) { 
    case FileError.QUOTA_EXCEEDED_ERR: 
     msg = 'QUOTA_EXCEEDED_ERR'; 
     break; 
    case FileError.NOT_FOUND_ERR: 
     msg = 'NOT_FOUND_ERR'; 
     break; 
    case FileError.SECURITY_ERR: 
     msg = 'SECURITY_ERR'; 
     break; 
    case FileError.INVALID_MODIFICATION_ERR: 
     msg = 'INVALID_MODIFICATION_ERR'; 
     break; 
    case FileError.INVALID_STATE_ERR: 
     msg = 'INVALID_STATE_ERR'; 
     break; 
    default: 
     msg = 'Unknown Error'; 
     break; 
    }; 

    console.log('Error: ' + msg); 
} 

Ulteriori informazioni here.

+0

grazie per la tua risposta. ho usato il tuo codice..un clic del pulsante che sta dando. errorHandler non è definito. tutto ciò che ho perso? –