将对“contentEditable”部分所做的更改保存回原始HTML文件

时间:2015-02-24 04:18:09

标签: javascript html contenteditable

如何保存对" contentEditable"所做的更改?部分回到原始HTML文件。这甚至可能吗?

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

编辑: 也许更多细节会有所帮助。我期待为我所有的RPG创建动态角色表。我使用过文档共享服务,但HTML + javascript的交互式和动态性提供了我所需要的更多功能。设计文件很简单。我只是希望玩家在网络浏览器中打开它(即使存储在他们的桌面上),做笔记和编辑,然后点击"保存你的角色"按钮,将他们更改的元素写回原始HTML文件。如果没有想到的方法可以做到这一点,那就好了,我想要一些明确的信息。

1 个答案:

答案 0 :(得分:0)

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

  1. 具有contentEditable属性的元素上的事件处理程序,以便您可以挂钩其内容修改。
  2. 服务器上的API,允许您告诉它更新内容为Y的文件X
  3. 基本方法是:

    1. 从浏览器中的服务器加载HTML
    2. 点击具有contentEditable属性的元素并开始编辑
    3. 完成编辑,并启动元素的javascript处理程序(请参阅https://stackoverflow.com/a/14043919/740553了解如何执行此操作)。
    4. 获取当前URL,以及刚刚更改的元素的路由及其新内容,然后将其发送到服务器。这需要:
    5. 服务器正在运行一条接受路由来侦听某些路由上的POST数据,例如..../changepage(当然不接受任何人的输入),并且:
    6. 可以使用POSTed文件名,元素路径和内容字符串,打开该文件,找到有问题的元素,替换其内容,然后将其打包回一个文件名与之前相同的新文件。
    7. 至少可以说,这非常脆弱,容易出错和滥用。有更好的方法可以做到这一点,而且几乎所有这些都依赖于拥有内容服务器,以及一个内容加载内容的页面,用于内容服务器中非常特殊的可编辑元素,因此显示,编辑和保存内容都发生在"一件事"而不是需要根据元素路径在.html文件中解析的元素。

      或者,使事情变得更加容易,使用像React这样的东西来实现大部分时间。当然,您仍然可以编写服务器,以便它可以提供内容,并接受修改请求。

      不幸的是,对于你来说,你想要做的事情实际上是非常难以做得好,而且安全。