2012-06-19 13 views
11

Chcę utworzyć plik tekstowy w lokalnym, kiedy przeglądam w Google Chrome kliknięcie przycisku pokazuje błąd taki jak ActiveXObject nie jest zdefiniowany i kiedy przeglądam kliknięcie Safari przycisku wyświetla błąd jak nie można znaleźć zmiennej: ActiveXObject. każdy może pomóc me.how mogę osiągnąć i stworzyć plik .ThanqActiveXObject nie jest zdefiniowany i nie może znaleźć zmiennej: 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

Nawet w IE, jeśli zrobisz to ze strony obsługiwanej przez HTTP, będziesz uderzał w bloki bezpieczeństwa. –

Odpowiedz

15

ActiveXObject jest dostępna tylko w przeglądarce IE. Więc co drugi useragent wygeneruje błąd

na nowoczesnej przeglądarce można użyć zamiast File API lub File writer API (obecnie realizowane only on Chrome)

+0

Plik API jest tylko do odczytu, więc nie możesz. – Quentin

+0

Dobra, poprawiłem swoją odpowiedź, dziękuję. – fcalderan

+0

Dzięki za odpowiedź. –

8

ActiveXObject jest nietypowy i obsługiwane tylko przez przeglądarkę Internet Explorer w systemie Windows.

Nie ma natywnej krzyżowej przeglądarki sposobu zapisu do systemu plików bez korzystania z wtyczek, nawet wersja robocza File API daje dostęp tylko do odczytu.

Jeśli chcesz pracować na wielu platformach, musisz spojrzeć na takie rzeczy jak podpisane aplety Java (pamiętając, że będzie to działać tylko na platformach, dla których dostępne jest środowisko wykonawcze Java).

2

Aplikacja internetowa może żądać dostępu do piaskowanego systemu plików, dzwoniąc pod numer window.requestFileSystem(). Działa w 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); 
} 

Więcej informacji here.

+0

dzięki za odpowiedź. użyłem twojego kodu ... kliknij przycisk, który daje. errorHandler nie jest zdefiniowany. coś, co przegapiłem? –

Powiązane problemy