3

我刚刚发现了这个contenteditable属性,我正在考虑它的实际用途。

我认为快速更新页面会很棒,但是有一些问题,例如:

  • 安全性:您显然不希望任何人更新您的页面,因此对内容的编辑应该受到相当严格的控制
  • 登录后使页面内容可编辑。这不需要更改整个页面的标记吗?本身不是问题,但我应该想象一个相当大的工作
  • 保存新内容。从理论上讲,这可以通过带有 json 的 ajax 来完成,以将新页面标记保存在数据库的字段中,不是吗?另外,您如何向网站确认“我已完成更改,您现在可以保存”

我喜欢在您将要看到的地方快速编辑页面内容的想法。我对在我的网站上实现这样的事情感到非常兴奋,但在尝试之前我可以使用一些指导。

任何人都可以解决上面列出的问题以及我认为可能不相关的任何问题吗?

谢谢你的时间!

4

1 回答 1

3
  • 安全 是的,您不希望任何人更新您的页面,但这与contenteditable它本身无关。人们现在可以使用浏览器的开发工具更改互联网上任何页面的内容,但除了伪造有趣的屏幕截图外,如果服务器不接受更新,这对他们来说并没有多大用处。这里更重要的问题是通过确保用户添加到页面的内容是“安全的”来防止跨站点脚本攻击等事情(例如,这就是为什么博客通常不允许评论中的大多数 HTML 标记)。
  • 登录后使内容可编辑只需contenteditable在用户登录后在服务器端逻辑中添加属性。或者,当用户单击“编辑”按钮时使用 JavaScript 添加它。我不希望它改变整个页面的标记,因为要使这种方法变得合理,页面将已经在服务器端从一个模板中生成,该模板填充了存储在数据库中的内容。如果您正在谈论使静态站点可编辑,那么,是的,您有很多工作要做,但是您必须完成这些工作,但是您计划让人们编辑页面。
  • 保存新内容是的,使用 Ajax。JSON 不是必需的,它是您要发回的 HTML 内容,对吗?将其作为 HTML 发送回来,请记住上面关于跨站点脚本的评论并在服务器端进行安全检查(永远不要相信用户输入)。如何确认用户已完成编辑取决于您,就像您必须添加编程逻辑以使用 Ajax 将更改发送回并在服务器上处理这些更改一样,您将不得不必要时添加显示编辑工具(粗体、斜体等按钮)的逻辑 - 添加一个按钮以同时执行更新。
于 2012-11-13T09:01:23.843 回答