6

我想知道 HTML5 的当前状态是否可以编辑本地文件。更准确地说,我的意思是:

  • 这些文件不是由服务器提供的(它们在 上file://),或者在最坏的情况下,是本地服务器
  • 编辑器要么在本地文件系统上,要么由外部服务器提供服务
  • 如果我不使用浏览器扩展程序会更好
  • 总体目标是创建一个不需要页面重新加载或手动文件插入的在线 IDE

我知道有 fileSystem API,但从我读到的似乎仅适用于 chrome 扩展?那么监听文件变化呢?

我还在trace.gl上注意到,可以创建单击后打开本地文本编辑器的链接(如在 chrome 控制台中)。

是否可以重现我们可以看到的内容,trace.gl但同时访问本地文件系统并监听文件更改事件,以创建某种本地 IDE?

编辑更精确:目标实际上是创建一个 IDE。以代码 IDE(Eclipse ...)为例,它显示工作区中的每个文件和目录,并听取更改,可以实时读/写等。这就是我想要实现的。PS:如果需要,它可能是特定于浏览器的

4

5 回答 5

5

我想知道 HTML5 的当前状态是否可以编辑本地文件

是和不是。HTML5 文件系统 API规范已在所有最新的浏览器(IE10、iOS6、Chrome、Safari、Firefox)中实现。但是,它不会让您完全访问用户本地文件系统。引用规范:

该规范定义了一个用于导航文件系统层次结构的 API,并定义了一种方式,用户代理可以通过该方式将用户本地文件系统的沙盒部分暴露给 Web 应用程序。

他们阻止你做你想要实现的事情的关键字是"sandboxed"。在幕后,当您使用 HTML5 文件系统 API 时,它将创建一个全新的目录供当前页面使用。

如果您对拥有自己的 sanboxed 目录的页面感到满意,这可以让您实现您想要的,但是如果您正在创建一个 IDE,我怀疑您需要比这更多的控制权。

IDE 在浏览器中

事实上,基于浏览器的 IDE 已经在做与您所要求的类似的事情:

我的建议是从查看他们的代码库开始——它们都是开源的并且处于相当稳定的状态。您可以将其中一个分支来实现您的目标,也可以将它们用作如何自己开始的想法。

于 2013-07-31T16:18:09.853 回答
1

根据HTML5 Rocks的说法,File ReaderAPI 在最近版本的主流浏览器中实现,File System & File Writer API 在 Chrome 和 Opera 中实现。此文件系统 API 教程中提供了有关利用此 API 的更多信息。

根据我对工作草案的理解,不可能监视文件更改。

如果您不严格限于 HTML5,您可能想了解TiddlyWiki如何使用 Java 小程序在本地保存文件,查看利用 Dropbox 作为一种数据库的Dropbox Datastore API ,或Dropbox Saver Drop-in .

于 2013-07-26T20:12:22.107 回答
0

如果您使用的是 Mac,您可以告诉浏览器打开本地保存的网页,就像它在服务器上一样。由于 Mac OS X 附带 Apache,您可以使用http://而不是,file:///它将使用 Apache Web 服务器打开,而不仅仅是查看文件。这将像在远程服务器上一样加载它。您可以使用任何文本编辑器或 IDE,只要它保存到本地文件系统即可。这不是特定于浏览器的。要加载新的编辑,只需保存页面并刷新浏览器。

希望这可以帮助!

于 2013-07-16T15:31:09.483 回答
0

Chrome Canary 中有一个叫做 Workspaces 的东西(在撰写本文时),它允许您将页面映射到磁盘上的文件,以便保留更改。否则,您可能需要通过网络服务器提供本地文件,然后将更新发布到可以写入它们的网络服务器。

于 2013-07-30T11:36:25.267 回答
0

不是真正的 HTML5 API。但是有一些特定于浏览器的解决方案。

例如,在 IE 中,您可以通过 ActiveX 和FileSystemObject实现:

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("This is a test.")
a.Close

在 FF 中,这可以通过XPCOM组件来完成。对于其他浏览器,可以使用 JAVA 小程序。

您还可以查看twFile jquery 插件(基本上是上述方法的包装器)。

于 2013-08-02T11:11:01.500 回答