我想要预览一些带有 HTML 标签的文本,然后将文本存储在数据库中的功能。我知道出于 XSS 安全原因,在数据库中允许 HTML 不是一个好主意。有什么方法可以实现这一目标?
我想要一个类似于我们在 stackoverflow 中的功能,我们可以在其中格式化我们的源代码。谢谢。
我想要预览一些带有 HTML 标签的文本,然后将文本存储在数据库中的功能。我知道出于 XSS 安全原因,在数据库中允许 HTML 不是一个好主意。有什么方法可以实现这一目标?
我想要一个类似于我们在 stackoverflow 中的功能,我们可以在其中格式化我们的源代码。谢谢。
推荐方式:
为您的 html 页面上的表单创建一个javascript 事件侦听器。通过 ajax将输入提交到您的 rails 应用程序,输入将在其中呈现(例如,由稍后将呈现数据库输出的相同帮助程序)。
使用像RedCloth/Textile这样的标记语言来避免 XSS。它也更容易为您的用户输入/理解!
您要求的方式:
创建一个 javascript 事件侦听器并将表单/输入的内容写入另一个 div。
您需要的 javascript 取决于您使用的库(例如,原型或 jQuery)。
例子:
假设您有一个带有 textarea、<textarea id="text"></textarea>
和一个预览区域 div的表单,<div id="preview"></div>
并且您正在使用 Prototype:
document.observe("dom:loaded", function() {
new Form.Element.Observer('text', 0.25,
function () {
$('preview').update($F('text'));
}
);
}
这将每 250 毫秒检查一次 textarea 的更改并将其输入复制到预览 div 中。
实际上,您只需要调用函数内部的代码(以.document.observe
开头)将在浏览器完成构建 DOM 树后调用此代码。new Form.Element.Observer...
document.observe
You could also consider using something like textile or markdown, which are ways to achieve HTML markup with plain text.