web-dev-qa-db-ja.com

CKEditor getEditor()エラー、それを修正する方法?

<textarea cols="50" id="txt" contenteditable="true" name="editor1" runat="server" rows="10"></textarea>
<script type="text/javascript" src="css-js/ckeditor.js"></script>
<script type="text/javascript">
  CKEDITOR.replace('txt', {                    
  });       
</script>

私はjsでこのエラーを受け取ります:

TypeError:未定義のメソッド'getEditor'を呼び出せません

14
Bip

まず、_contenteditable="true"_タグは完全に無効であり、あなたの場合は時代遅れです。そのような属性は インラインインスタンスのみ に関連し、_<textarea>_は(コンテンツ)編集可能ではないため、 必要ありません です。

とにかく、(バグがあったとしても)あなたのコードは私にとって魅力的です( fiddle )。説明として、表示されるエラーは、idの要素がCKEDITOR.replace()に渡されない場合に生成されます。

_<textarea id="foo"></textarea>
<script type="text/javascript">
     CKEDITOR.replace( 'bar' ); // <textarea> is #foo, error will be thrown
</script>
_

DOMが有効であり、_<textarea>_が呼び出されたときに_CKEDITOR.replace_が存在することを確認してください(非同期で機能しますか?).

16
oleq

使用する

CKEDITOR.appendTo( 'txt' ); for DOM elements

CKEDITOR.replace( 'textarea' ); for textarea

これも試してみて

関数appendToおよびreplaceはすべてthemedui.jsファイルにあります

個別に追加してみてください、ここにリンクがあります

http://docs.ckeditor.com/source/ckeditor.html#CKEDITOR

3
jayadevkv

問題が含まれている可能性があります。

<script src="{{ asset('js/app.js') }}" defer></script>

それを削除してみてください。これはあなたの問題を解決することができます

0
Ismoilov Amir

同様の問題があり、次のように並べ替えました。

<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
    if($("textarea").length > 0){
        CKEDITOR.replace( 'ckeditor' );
    }
</script>
0
MJCoder

それを取り除きたいだけなら、

try{CKEDITOR.replace('body')}catch{}

それはあなたがそれをしたいところにCKEDITORを開きます

0
Sanjay

バニラjs

<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
   if(document.getElementsByTagName('textarea').length > 0){
      CKEDITOR.replace( 'article-ckeditor' ); 
   }
</script>
0
John Mark

これが正しい方法です(Django adminを調べて、このメソッドを見つけました)

var textAreaEl = document.getElementById("id_html_txt")
var textAreadData = textAreaEl.dataset.config

var textEditor = CKEDITOR.replace(textAreaEl, textAreadData);
textEditor.insertHtml(textAreaEl)
  • 上記の構成はモーダルフォーム用ですが、通常のフォームでも機能します
0
Nishant Singh