Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何呈现通过表单提交的HTML?_Javascript_Ruby On Rails_Ruby_Html_Contenteditable - Fatal编程技术网

Javascript 如何呈现通过表单提交的HTML?

Javascript 如何呈现通过表单提交的HTML?,javascript,ruby-on-rails,ruby,html,contenteditable,Javascript,Ruby On Rails,Ruby,Html,Contenteditable,如何呈现通过表单提交的HTML 我正在Rails 4应用程序中构建一个文本编辑器。我正在使用javascript将可编辑内容中的数据传递到表单中,以保存到数据库中。到目前为止一切都很好 除了用户保存的文本外,还包括HTML。。。因此,我保存的内容如下所示: <header class="header" contenteditable="true"> This is a title </header> <article class="co

如何呈现通过表单提交的HTML

我正在Rails 4应用程序中构建一个文本编辑器。我正在使用javascript将可编辑内容中的数据传递到表单中,以保存到数据库中。到目前为止一切都很好

除了用户保存的文本外,还包括HTML。。。因此,我保存的内容如下所示:

<header class="header" contenteditable="true">
        This is a title
      </header>

<article class="content" contenteditable="true">This is the body<br></article>

这是一个标题
这是主体
当我在#索引或#编辑中显示内容时,HTML将作为普通文本发布


如何使其呈现?

在页面上显示HTML标记等的原因是,默认情况下,Rails会保护您免受恶意数据的攻击并转义HTML标记。你可以通过确保文本是“安全的”来解决这个问题。@bjhaid在评论中建议的方式(简单地使用
raw()
)对于用户提供的内容是不好的,因为它本质上只是信任内容——可以是任何内容,包括从用户获取数据或访问服务器的脚本标记

清理用户提供的内容的最佳方法是:

<%= sanitize(the_user_supplied_content) %>

另请参见。

对于用户提供的内容,请小心使用
raw
。使用
sanitize()更安全
helper。请参阅下面的答案。这更有意义。但是,sanitize似乎删除了contenteditable属性。是否有方法自定义允许的HTML代码或标记?是的,有一个配置参数。请参阅
# config/application.rb
config.action_view.sanitized_allowed_attributes = "my_new_attribute"