私のWebアプリケーションでは、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);
}
完全に正常に動作し、 TextHereをエディターに配置します。この問題を引き起こしているここで何が起こっているのですか?