如何将对“ contentEditable”部分所做的更改保存回原始HTML文件。这有可能吗?

我需要创建一个包含用户更改部分的html文件。我希望使用他们的Web浏览器,用户能够“保存”更改,以便实际更新原始HTML文件。该文件可能存储在用户的PC上,也可能最终托管在服务器上。无论在何处,都需要将更改写回到HTML文件。

编辑:
也许一些更多的细节会有所帮助。我正在为I GM的所有RPG创建一个动态的字符表。我曾经使用过文档共享服务,但是HTML + javascript的交互式和动态性质提供了我所需要的更多信息。设计文件非常容易。我只希望玩家在Web浏览器中打开它(即使存储在桌面上),进行注释和编辑,然后单击“保存您的角色”按钮,该按钮会将他们更改的元素写回到原始HTML文件中。如果没有可以想到的方法,那好吧,我只想提供一些确定的信息。

最佳答案

该文件位于某处的服务器上,浏览器从该服务器检索文件,之后您可以将contentEditable内容弄乱,因此要使更改传播到原始文件,您至少需要两件事:


具有contentEditable属性的元素上的事件处理程序,以便您可以对其内容进行修改。
服务器上的一个API,可让您告诉它用内容Y更新文件X


基本方法是:


在浏览器中从服务器加载HTML
单击具有contentEditable属性的元素并开始编辑
完成编辑,并启动元素的javascript处理程序(有关操作方法,请参见https://stackoverflow.com/a/14043919/740553)。
使用当前URL,到您刚刚更改的元素的路由,其新内容,然后将其发布到服务器。这要求:
服务器正在运行一条接受路由,该路由在..../changepage之类的路由上侦听POST数据(当然,不接受任何人的输入),并且:
可以采用POSTed的文件名,元素路径和内容字符串,打开该文件,查找有问题的元素,替换其内容,然后将其打包回到具有与以前相同的文件名的新文件中。


至少可以说,这是非常脆弱的,并且易于出错和滥用。有更好的方法可以执行此操作,并且几乎所有方法都依赖于拥有内容服务器,并且页面中加载了内容服务器中内容非常明确的可编辑元素的内容,因此显示,编辑和保存内容的所有操作都会发生“一件事”,而不是基于元素路径在.html文件中需要解析的元素。

或者,使事情变得更加容易,使用React之类的工具几乎可以立即完成大部分工作。当然,尽管如此,您仍然需要编写服务器,以便它可以提供内容并接受修改请求。

对于您来说不幸的是,您想要做的事情实际上很难做到既安全又安全。

10-04 21:48
查看更多