在我的网络应用程序中,我使用tinymce编辑器来允许用户创建html电子邮件。我提供了一个功能,他们可以将模板保存到数据库中,以便他们可以将其用于多封电子邮件并在任何他们想要的地方访问它。但是当我尝试将存储在数据库中的内容加载回编辑器时,它只是插入 html 字符串。我想要它,这样 html 就会被渲染,这样他们就可以看到模板,就像他们保存模板时一样。
我认为这个问题与 ERB 有关,因为当我传入普通字符串时它工作正常,但是当我使用 ERB 来使用实例变量时,它只是将内容设置为 html 字符串,格式不正确。这是我的代码:
tinyMCE.init({
mode : "textareas",
theme : "advanced",
...
oninit : "loadTemplate"
});
function loadTemplate() {
tinyMCE.activeEditor.setContent("<%= @template %>");
}
这只是 <strong>Text Here</strong>
在编辑器中,但是这个:
tinyMCE.init({
mode : "textareas",
theme : "advanced",
...
oninit : "loadTemplate"
});
function loadTemplate() {
template = "<strong>Text Here</strong>";
tinyMCE.activeEditor.setContent(template);
}
工作得很好,并将此处的文本放入编辑器中。这里发生了什么导致了这个问题?
最佳答案
如果@template
包含一个HTML字符串,rails会自动转义它。为了防止转义,请尝试添加 raw
,如下所示:
<%= raw @template %>
关于ruby-on-rails - tinymce setContent 不适用于 erb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12113411/