使用Rails实时预览格式化的HTML表单输入
我想要一个function,用HTML标签预览一些文本,然后将文本存储在数据库中。 出于XSS安全原因,我知道在数据库中允许HTML不是一个好主意。 有什么方法可以达到这个目的?
我想要一个类似于stackoverflow中的function,我们可以格式化我们的源代码。 谢谢。
推荐方式:
在html页面上为表单创建一个javascript事件监听器。 通过ajax将输入提交到rails应用程序 ,其中输入被呈现(例如,通过稍后将呈现数据库输出的同一帮助程序)。
使用像RedCloth / Textile这样的标记语言来避免XSS。 为用户输入/理解它也更容易!
您要求的方式:
创建一个javascript事件监听器,并将表单/输入的内容写入另一个div。
您需要的javascript取决于您使用的库(例如Prototype或jQuery)。
例:
假设你有一个带有textarea的表单, ,以及一个带有
的预览区div,你正在使用Prototype:
document.observe("dom:loaded", function() { new Form.Element.Observer('text', 0.25, function () { $('preview').update($F('text')); } ); }
这将检查textarea每250ms进行更改并将其输入复制到预览div中。
实际上,您只需要使用document.observe
调用的函数内部的代码( new Form.Element.Observer...
开始new Form.Element.Observer...
在浏览器完成构建DOM树之后, document.observe
将调用此代码。
您还可以考虑使用像textile或markdown这样的东西,这是用纯文本实现HTML标记的方法。