在客户端和服务器上过滤contentEditable

时间:2013-12-17 14:39:40

标签: javascript ruby-on-rails ajax contenteditable dry

我正在开发一个使用HTML 5的contentEditable功能的Rails网络应用程序,采用Google Docs和其他人的风格。这适用于简单的键入,但只要用户尝试从Word或其他网页粘贴文本,就会中断。生成的HTML将充满样式属性,看起来就像从字面上剪切并粘贴了源代码。

我需要以某种方式过滤HTML。这可以在客户端完成,为用户提供流畅的界面,其中粘贴的材料立即适合我的应用程序风格。

当然,用户可以覆盖我的过滤。所以为了完全保护自己免受标签汤地狱的影响,我需要在服务器端再次执行相同的过滤。这类似于表单验证问题。

我不想在jQuery(客户端)和Ruby(服务器端)中复制过滤逻辑,但我不知道是否有任何好的方法可以避免它。到目前为止,我已经确定了两种可能性:

  • 实现所有过滤服务器端,通过AJAX从客户端访问它。这将给服务器带来沉重负担。

  • 在JS中完全实现过滤,通过Node.js在客户端和服务器上运行。我不知道两个平台之间是否有足够的相似性来实现共享过滤例程。像Cheerio这样的图书馆看起来很有希望。

之前有没有人解决过类似的问题?我很感激任何将我的应用尽量保持干净的指导。

0 个答案:

没有答案