2012-06-19 11 views
11

Quiero crear un archivo de texto en local, cuando navego en Google Chrome, haga clic en el botón que muestra el error ActiveXObject no está definido y cuando navego en Haga clic en safari del botón que muestra el error como no se puede encontrar la variable: ActiveXObject. cualquiera puede ayudar me.how puedo lograr y crear el archivo .ThanqActiveXObject no está definido y no puede encontrar la variable: 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

Incluso en IE, si haces esto desde una página servida a través de HTTP, vas a golpear bloques de seguridad. –

Respuesta

15

ActiveXObject sólo está disponible en el navegador Internet Explorer. Así que todos los demás useragent generará un error

El navegador moderno se puede utilizar en lugar File API o File writer API (actualmente implementado only on Chrome)

+0

File API es de solo lectura, por lo que no puede. – Quentin

+0

Bien, mejoré mi respuesta, gracias. – fcalderan

+0

Gracias por su respuesta. –

8

ActiveXObject no es estándar y sólo está soportado por Internet Explorer en Windows.

No existe una forma nativa de navegador cruzado para escribir en el sistema de archivos sin usar complementos, incluso el borrador File API brinda acceso de solo lectura.

Si desea trabajar en plataforma cruzada, debe considerar elementos como los applets Java firmados (teniendo en cuenta que eso solo funcionará en plataformas para las cuales el tiempo de ejecución de Java está disponible).

2

Una aplicación web puede solicitar acceso a un sistema de archivos de espacio aislado llamando al window.requestFileSystem(). Funciona en 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); 
} 

Más información here.

+0

gracias por su respuesta. He usado tu código ... al hacer clic en el botón que está dando. errorHandler no está definido. algo que he perdido? –

Cuestiones relacionadas