<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>
Ich bekomme diesen Fehler auf js:
TypeError: Methode
'getEditor'
von undefined kann nicht aufgerufen werden
Vor allem ist das contenteditable="true"
-Tag in Ihrem Fall völlig ungültig und veraltet. Dieses Attribut ist nur für Inline-Instanzen relevant und da <textarea>
nicht (inhaltlich) editierbar ist, brauchen Sie es nicht .
Jedenfalls (selbst wenn fehlerhaft) funktioniert Ihr Code für mich wie ein Zauber ( Geige ). Als ein Wort der Erklärung wird der Fehler, den Sie sehen, erzeugt, wenn kein Element einer id
an CKEDITOR.replace()
übergeben wird, d. H.
<textarea id="foo"></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'bar' ); // <textarea> is #foo, error will be thrown
</script>
Stellen Sie sicher, dass Ihr DOM gültig ist und <textarea>
vorhanden ist, wenn CKEDITOR.replace
aufgerufen wird (async arbeitet?).
Benutzen
CKEDITOR.appendTo( 'txt' ); for DOM elements
CKEDITOR.replace( 'textarea' ); for textarea
Ok, Kumpel, probier das auch
die Funktionen appendTo und replace befinden sich alle in der Datei themedui.js
versuchen Sie es separat hinzuzufügen, hier ist der Link
Das Problem kann enthalten sein:
<script src="{{ asset('js/app.js') }}" defer></script>
Versuchen Sie es zu entfernen. Dies kann Ihr Problem lösen
Ich hatte ein ähnliches Problem und sortierte es folgendermaßen:
<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
if($("textarea").length > 0){
CKEDITOR.replace( 'ckeditor' );
}
</script>
wenn Sie das nur loswerden möchten, verwenden Sie
try{CKEDITOR.replace('body')}catch{}
dadurch wird CKEDITOR dort geöffnet, wo Sie es möchten
Dies ist der richtige Weg (Ich habe diese Methode gefunden, indem ich Django admin)
var textAreaEl = document.getElementById("id_html_txt")
var textAreadData = textAreaEl.dataset.config
var textEditor = CKEDITOR.replace(textAreaEl, textAreadData);
textEditor.insertHtml(textAreaEl)