ローカルでテキストファイルを作成したい、Googleで閲覧するときchromeボタンをクリックするとActiveXObjectが定義されていませんのようなエラーが表示され、safariで閲覧するとき変数が見つかりません: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()'>
ActiveXObject
はIEブラウザでのみ利用可能です。他のすべてのユーザーエージェントはエラーをスローします
最新のブラウザでは、代わりに File API または File writer API を使用できます(現在実装されている Chromeのみ )
ActiveXObject
は非標準であり、Windows上のInternet Explorerでのみサポートされています。
プラグインを使用せずにファイルシステムに書き込むネイティブクロスブラウザの方法はありません。ドラフト File API でも読み取り専用アクセスが可能です。
クロスプラットフォームで作業したい場合は、署名されたJavaアプレット(Javaランタイムが利用可能です)。
Webアプリは、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);
}
詳細 こちら 。