我想在本地创建文本文件,当我浏览谷歌浏览器点击按钮时,它显示错误,如 ActiveXObject未定义,当我在safari中浏览时单击按钮它是显示错误,如找不到变量:ActiveXObject 。任何人都可以帮助我。我可以实现和创建文件.Thanq
<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()'>
答案 0 :(得分:23)
ActiveXObject
仅适用于IE浏览器。所以每个其他的useragent都会抛出错误
在现代浏览器上,您可以使用File API或File writer API(目前已实施only on Chrome)
答案 1 :(得分:11)
ActiveXObject
是非标准的,只有Windows上的Internet Explorer支持。
没有使用插件就没有原生的跨浏览器方式来写入文件系统,即使草稿File API提供了只读访问权限。
如果您想跨平台工作,那么您需要查看签名的Java小程序(请记住,这只适用于Java运行时可用的平台)。
答案 2 :(得分:2)
通过调用window.requestFileSystem()
,Web应用可以请求访问沙盒文件系统。适用于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。