Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML5中的本地编辑器_Javascript_Html_Google Chrome_Ide_Html5 Filesystem - Fatal编程技术网

Javascript HTML5中的本地编辑器

Javascript HTML5中的本地编辑器,javascript,html,google-chrome,ide,html5-filesystem,Javascript,Html,Google Chrome,Ide,Html5 Filesystem,我想知道HTML5的当前状态是否使编辑本地文件成为可能。 更准确地说,我的意思是: 这些文件不是由服务器提供的(它们位于文件://上),在最坏的情况下,也不是由本地服务器提供的 编辑器位于本地文件系统上,或者由外部服务器提供服务 如果我不使用浏览器扩展就更好了 总体目标是创建一个不需要重新加载页面或手动插入文件的在线IDE 我知道有文件系统API,但据我所知,它似乎只适用于chrome扩展?那么监听文件更改呢 我还注意到,可以创建链接,单击后打开本地文本编辑器(如在chrome控制台中) 是

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

  • 这些文件不是由服务器提供的(它们位于
    文件://
    上),在最坏的情况下,也不是由本地服务器提供的
  • 编辑器位于本地文件系统上,或者由外部服务器提供服务
  • 如果我不使用浏览器扩展就更好了
  • 总体目标是创建一个不需要重新加载页面或手动插入文件的在线IDE
我知道有文件系统API,但据我所知,它似乎只适用于chrome扩展?那么监听文件更改呢

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

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

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

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

希望这有帮助

根据,文件读取器API在主要浏览器的最新版本中实现,文件系统和文件编写器API在Chrome和Opera中都实现。有关利用此API的更多信息,请参阅

据我所知,不可能监视文件更改


如果您不严格局限于HTML5,您可能希望了解如何使用Java小程序在本地保存文件,了解利用Dropbox作为一种数据库的应用程序,或者。

在Chrome Canary中有一种称为工作区的东西(在撰写本文时)这允许您将页面映射到磁盘上的文件,以便保留更改。否则,您可能需要通过Web服务器为本地文件提供服务,然后将更新发布到可以写入这些文件的Web服务器

我想知道HTML5的现状是否使编辑成为可能 本地文件

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

本规范定义了用于导航文件系统层次结构的API, 并定义了用户代理可以公开沙盒的方法 将用户本地文件系统的各个部分连接到web应用程序

阻止你做你想做的事情的关键词是“沙盒”。在封面下,当您使用HTML5文件系统API时,它将创建一个全新的目录供当前页面使用

如果你对你的页面有自己的sanboxed目录感到满意,那么这可能会让你实现你想要的,但是如果你正在创建一个IDE,我怀疑你想要比这多一点的控制

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

  • Cloud9——这是通过启动Node.js Web服务器并指向包含项目的目录来实现的。然后,该浏览器会将这些文件提供给浏览器
  • Orion--这是一个基于Eclipse的项目,它通过启动本地web服务器并将文件提供给浏览器来再次工作

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

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

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

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


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

您可以将桌面文件拖入或拖出chrome。您可以使用文件输入在所有最近的浏览器中读取本地文件。您可以将修改后的文件发送到所有浏览器中的downloads/lastsaved文件夹。通常情况下,您还无法编写一键保存按钮的代码,它仍然是拖放或下载和移动例程。Mac上的Apache是否默认启用以提供任何文件://?否,您必须使用
http://
才能触发Apache。使用
file://
只会像查看文件一样加载页面,而不是作为网站页面加载。不,我的意思是,你所要做的就是切换路径的协议,或者是否涉及设置?问题其实不是打开本地服务器,而是创建一个不需要它的应用程序。我想做的是一个不涉及页面的浏览器嵌入式编辑器refreshing@dandavis你所要做的就是切换协议
Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine("This is a test.")
a.Close