<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'
を呼び出せません
まず、_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
_が存在することを確認してください(非同期で機能しますか?).
使用する
CKEDITOR.appendTo( 'txt' ); for DOM elements
CKEDITOR.replace( 'textarea' ); for textarea
これも試してみて
関数appendToおよびreplaceはすべてthemedui.jsファイルにあります
個別に追加してみてください、ここにリンクがあります
問題が含まれている可能性があります。
<script src="{{ asset('js/app.js') }}" defer></script>
それを削除してみてください。これはあなたの問題を解決することができます
同様の問題があり、次のように並べ替えました。
<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
if($("textarea").length > 0){
CKEDITOR.replace( 'ckeditor' );
}
</script>
それを取り除きたいだけなら、
try{CKEDITOR.replace('body')}catch{}
それはあなたがそれをしたいところにCKEDITORを開きます
バニラjs
<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
if(document.getElementsByTagName('textarea').length > 0){
CKEDITOR.replace( 'article-ckeditor' );
}
</script>
これが正しい方法です(Django adminを調べて、このメソッドを見つけました)
var textAreaEl = document.getElementById("id_html_txt")
var textAreadData = textAreaEl.dataset.config
var textEditor = CKEDITOR.replace(textAreaEl, textAreadData);
textEditor.insertHtml(textAreaEl)