4

我的桌面上有一个需要一些输入的 html 文件。我将如何将该输入写入计算机上的文件?我是否必须使用另一种语言来做到这一点(即 python 或 javascript?),我将如何去做?在相关说明中,有什么方法可以让 javascript 从 html 文件中启动应用程序(目标是写入我计算机上的文件?

4

5 回答 5

2

浏览器具有很多安全性,可以防止对您的计算机进行这种级别的控制。这是一件好事。您不希望随机网站能够在访问它们的任何人的计算机上执行此操作。

他们这样做的方法是编写一个您的浏览器可以访问的 Web 应用程序。浏览器可以将数据提交给在您自己的计算机上运行的应用程序,您的应用程序可以操作文件系统或做许多其他事情。

所以不,浏览器不能做这些事情。是的,您必须使用“另一种语言”来创建在浏览器本身之外运行的东西。您可以使用 javascript(请参阅 node.js)或 python 来执行此操作,以及几乎任何其他存在的编程语言来创建这样的东西。选择哪个取决于您。

于 2012-09-17T23:18:02.950 回答
2

您将不得不使用另一种语言。您应该看到Save file Javascript with file name(这需要您在您的网站上创建它并让用户下载它)和Python Save to file(要在 HTML 中实现 Python,请参见此处)。或者在 Javascript 中,您可以 ActiveX通过执行 * 来保存文件:

活动X

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 和 Javascript 不要混合了解更多详细信息*

于 2012-09-17T23:23:52.947 回答
2

现在可以使用FileWriter目前仅受 Chrome 和 Opera 支持的 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);

http://www.html5rocks.com/en/tutorials/file/filesystem/

于 2012-09-18T00:50:18.133 回答
0

你的问题有点难以回答。如果“它需要一些输入”是指form涉及一个元素,那么您可以通过像PHP这样的语言来处理它。

如果您只是想编辑代码并开始学习 HTML,那么 Notepad/TextEdit 和现代网络浏览器是您最好的新朋友。

于 2012-09-17T23:17:58.923 回答
0

简短的回答:

你不能。Web 浏览器安全性和沙盒化可以防止这种情况。

更长的答案:

设置一个小型 LAMP 堆栈、Ruby on rails(本地主机服务器)、Python/Django(本地主机服务器)来托管您的 HTML/Web 表单。当您将数据输入表单时,本地守护程序可以处理将数据附加到文件中。

使用 HTML5,您可以获得允许您写入本地文件系统的特殊钩子,但这些钩子可能是特定于浏览器的,并且可能会不时中断。

于 2013-03-09T00:56:44.640 回答