プログラミングを完全に理解したエンジニアのメモ

チラ裏レベルのことしか書いてないインターネットの藻屑

CKEditorのフォームにhtmlタグを貼ると記号がエスケープされる

問題

フォームに

<h3>hogehoge</h3>

と入れて保存して

css

h3 {
  font-size: 24px;
}

みたいにやってもCSSは当たらない。

解決策

エスケープされて

&lt;h3&gt;hogehoge&lt;/h3&gt;

の形で保存される。

app/assets/javascripts/ckeditor/config.js

if (typeof(CKEDITOR) != 'undefined') {
  CKEDITOR.editorConfig = function (config) {
    config.basicEntities = false;
    config.entities = false;
  }
}

とすればOK

ちなみに

if (typeof(CKEDITOR) != 'undefined') {
}

がないと、ckeditorのフォームが無いページで

uncaught ReferenceError: CKEDITOR is not defined

のエラーが出る