Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 通过网页修改本地文件_Javascript_Html_Json_Local_Smb - Fatal编程技术网

Javascript 通过网页修改本地文件

Javascript 通过网页修改本地文件,javascript,html,json,local,smb,Javascript,Html,Json,Local,Smb,我的目标是让用户能够编辑位于同一文件夹中的json文件或他们所在的实际网页,并在访问该网页的所有用户中持久化。它托管在我无法控制的本地smb上 现在,页面使用jQuery加载json文件并显示内容,将我想要保存的新json字符串推送到加载的字符串中,仅此而已 我研究了javascript/jQuery解决方案,很快就发现js不允许对任何内容进行本地更改;然后我遇到了文件系统API,它看起来很完美,但已经死了,而且只在Chrome上工作。LocalStorage已退出,因为它对于每个浏览器都是唯一

我的目标是让用户能够编辑位于同一文件夹中的json文件或他们所在的实际网页,并在访问该网页的所有用户中持久化。它托管在我无法控制的本地smb上

现在,页面使用jQuery加载json文件并显示内容,将我想要保存的新json字符串推送到加载的字符串中,仅此而已

我研究了javascript/jQuery解决方案,很快就发现js不允许对任何内容进行本地更改;然后我遇到了文件系统API,它看起来很完美,但已经死了,而且只在Chrome上工作。LocalStorage已退出,因为它对于每个浏览器都是唯一的

理想情况下,页面的功能如下:

  • 打开页面
  • 在网页中显示json文件或json变量中的信息
  • 用户选择在文件中编辑/添加内容
  • 用户单击更新按钮
  • 现在,访问该页面的任何其他人都可以访问该数据

我知道这有点遥不可及,但任何帮助都将不胜感激

Javascript在浏览器上运行(除了NodeJS实现之外,这里不讨论NodeJS实现)

这意味着Javascript可以访问本地资源,而不是服务器资源。为了使用Javascript访问或操作服务器资源,您需要使用Javascript向服务器发送请求,并将服务器配置为根据您的请求分别操作(在您的问题中,使用AJAX发送JSON,并将服务器配置为将JSON保存到文件)

因此,为了实现您的目标,您需要对前端和后端进行编程。您的后端将是接受请求的服务器(如保存JSON文件以便其他客户端可以使用)和从服务器请求JSON文件的前端

添加:
即使您在局域网上,并且所有用户都将与您在同一局域网上,可以访问相同的网络文件,Javascript也无法编辑文件。它可以读取,但不能编辑。查看以了解更多信息。

Javascript在您的浏览器上运行(除了NodeJS实现之外,这里不讨论NodeJS实现)

这意味着Javascript可以访问本地资源,而不是服务器资源。为了使用Javascript访问或操作服务器资源,您需要使用Javascript向服务器发送请求,并将服务器配置为根据您的请求分别操作(在您的问题中,使用AJAX发送JSON,并将服务器配置为将JSON保存到文件)

因此,为了实现您的目标,您需要对前端和后端进行编程。您的后端将是接受请求的服务器(如保存JSON文件以便其他客户端可以使用)和从服务器请求JSON文件的前端

添加:
即使您在局域网上,并且所有用户都将与您在同一局域网上,可以访问相同的网络文件,Javascript也无法编辑文件。它可以读取,但不能编辑。查看以了解更多信息。

您不只是想将数据存储在服务器上吗?然后将该数据发送给每个用户。浏览器故意在没有明确用户干预的情况下对本地文件进行沙箱和阻止访问。@RushyPanchal是的,但我遇到的问题是,现在我无法允许他们修改该数据。每个用户都可以访问文件存放的位置,但我希望他们能够打开一个网页,允许他们查看和编辑这些数据,供所有人查看和使用。也许我在你问的问题中遗漏了什么?@MikeCheel这是我一直在读的内容,但我不确定是否有其他方法可以实现这一点,你必须将数据发送到某种服务器,以便与其他人共享数据。这必须是一个网页,或者像电子一样的东西可以工作吗?如果没有,您将必须有一个发送和接收数据的服务器。您可以使用一些库来规范本地存储访问(就像jquery规范dom访问一样)?然后将该数据发送给每个用户。浏览器故意在没有明确用户干预的情况下对本地文件进行沙箱和阻止访问。@RushyPanchal是的,但我遇到的问题是,现在我无法允许他们修改该数据。每个用户都可以访问文件存放的位置,但我希望他们能够打开一个网页,允许他们查看和编辑这些数据,供所有人查看和使用。也许我在你问的问题中遗漏了什么?@MikeCheel这是我一直在读的内容,但我不确定是否有其他方法可以实现这一点,你必须将数据发送到某种服务器,以便与其他人共享数据。这必须是一个网页,或者像电子一样的东西可以工作吗?如果没有,您将必须有一个发送和接收数据的服务器。您可以使用一些库来规范本地存储访问(就像jquery规范dom访问一样)。问题很清楚,没有服务器。您需要跨用户共享数据,没有服务器就无法做到这一点。(或者所有用户都进入同一个局域网?)这个问题清楚地表明,没有服务器。你需要跨用户共享数据,没有服务器就无法做到这一点。(或者所有用户都进入同一局域网?)