我的桌面上有一个html文件需要一些输入。我如何将该输入写入我的计算机上的文件?我是否必须使用另一种语言(即python或javascript?),我将如何做到这一点?在相关的说明中,有什么方法可以让javascript从html文件中启动一个应用程序(目标是写入我的计算机上的文件?
答案 0 :(得分:2)
浏览器具有很多安全性,可以防止对您的计算机进行此级别的控制。这是一件好事。您不希望随机网站能够在访问它们的任何人的计算机上执行此操作。
他们这样做的方法是编写一个浏览器可以访问的Web应用程序。浏览器可以将数据提交到在您自己的计算机上运行的应用程序,您的应用程序可以操作文件系统或执行许多其他操作。
所以不,浏览器不能做这些事情。是的,你必须使用"另一种语言"创建一些在浏览器本身之外运行的东西。您可以使用javascript(请参阅node.js)或python来执行此操作,以及几乎任何其他用于创建此类事物的编程语言。选择哪一个取决于你。
答案 1 :(得分:2)
您必须使用其他语言。你应该看到Save file Javascript with file name(这需要你在网站上创建并让用户下载它)和Python Save to file(用于在HTML中实现Python,请参阅here)。或者在Javascript中,您可以使用ActiveX
通过执行*:
的ActiveX
function WriteToFile()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var s = fso.CreateTextFile("C:\\Test.txt", true);
s.WriteLine('Hello');
s.Close();
}
的Python
myFile = open('Failed.py', 'w')
myFile.write('whatever')
myFile.close()
Javascript(非ActiveX)
uriContent = "data:application/octet-stream;filename=filename.txt," +
encodeURIComponent(codeMirror.getValue());
newWindow=window.open(uriContent, 'filename.txt');
**注意:我真的不建议使用ActiveX
,有关详细信息,请参阅ActiveX and Javascript do not mix *
答案 2 :(得分:2)
现在可以使用目前仅Chrome和Opera支持的FileWriter
API来使用Javascript写入本地文件:
http://caniuse.com/#search=filewriter
以下是HTML5Rocks.com的一些示例代码:
function onInitFs(fs) {
fs.root.getFile('log.txt', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
console.log('Write completed.');
};
fileWriter.onerror = function(e) {
console.log('Write failed: ' + e.toString());
};
// Create a new Blob and write it to log.txt.
var blob = new Blob(['Lorem Ipsum'], {type: 'text/plain'});
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);
答案 3 :(得分:0)
你的问题有点难以回答。如果“需要一些输入”表示涉及form
元素,那么您可以通过PHP之类的语言处理该元素。
如果您只是想编辑代码并开始学习HTML,那么Notepad / TextEdit和现代网络浏览器是您最好的朋友。
答案 4 :(得分:0)
简答:
你不能。 Web浏览器安全性和沙盒防止这种情况。更长的回答:
设置一个小型LAMP堆栈,Ruby on rails(本地主机服务器),Python / Django(本地主机服务器)来托管您的HTML / Web表单。当您将数据输入到表单中时,本地守护程序可以处理将数据附加到文件。
使用HTML5,您可以获得可以允许您写入本地文件系统的特殊钩子,但这些钩子可能是特定于浏览器的,并且可能会不时地中断。