2012-06-19 2 views
11

로컬에서 텍스트 파일을 만들고 싶습니다. Google 크롬에서 버튼을 클릭하면 과 같은 오류가 표시됩니다. ActiveXObject가 정의되지 않았습니다. 내가 탐색 할 때 사파리가 과 같은 오류를 표시하는 버튼을 클릭하면 변수를 찾을 수 없습니다. ActiveXObject. 하나는 me.how 내가 달성하고ActiveXObject가 정의되지 않았기 때문에 변수를 찾을 수 없습니다. 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

IE에서도 HTTP를 통해 제공되는 페이지에서이 작업을 수행하면 보안 블록을 사용하게됩니다. –

답변

15

ActiveXObject 만 IE 브라우저로 볼 수 있습니다 .Thanq 파일을 만들 수 있습니다 도움이 될 수 있습니다. 그래서 다른 모든 사용자 에이전트가 대신 File API 또는 File writer API

+0

File API는 읽기 전용이므로 읽을 수 없습니다. – Quentin

+0

맞아, 나는 나의 대답을 향상시켰다, 고마워. – fcalderan

+0

답장을 보내 주셔서 감사합니다. 회신에 감사드립니다. –

8

ActiveXObject는 비표준 및 Windows에서만 Internet Explorer에서 지원되지 (현재 only on Chrome를 구현) 사용할 수있는 현대적인 브라우저에 오류를

발생합니다.

플러그인을 사용하지 않고 파일 시스템에 쓸 원시 크로스 브라우저 방법은 없습니다. File API은 읽기 전용 액세스 권한을 제공합니다.

크로스 플랫폼으로 작업하려면 서명 된 Java 애플릿 (Java 런타임을 사용할 수있는 플랫폼에서만 작동한다는 점에 유의하십시오)과 같은 것을 살펴 봐야합니다.

2

웹 응용 프로그램은 window.requestFileSystem()을 호출하여 샌드 박스 파일 시스템에 대한 액세스를 요청할 수 있습니다. 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); 
} 

더 많은 정보 here.

+0

나는 당신의 코드를 사용했다. 그것이주는 버튼을 클릭한다. errorHandler가 정의되어 있지 않습니다. 내가 놓친 게 뭐 있니? –

관련 문제