<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>
Je reçois cette erreur sur js:
TypeError: Impossible d'appeler la méthode
'getEditor'
de non définie
Tout d'abord, la balise contenteditable="true"
est totalement invalide et obsolète dans votre cas. Cet attribut est pertinent pour les instances en ligne uniquement et, étant donné que <textarea>
n'est pas éditable (contenu), vous n'en avez pas besoin .
Quoi qu'il en soit, (même si buggy) votre code fonctionne pour moi comme un charme ( violon ). En tant que mot d’explication, l’erreur que vous voyez est produite quand aucun élément d’une variable id
n'est passé à CKEDITOR.replace()
, c’est-à-dire:
<textarea id="foo"></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'bar' ); // <textarea> is #foo, error will be thrown
</script>
Assurez-vous que votre DOM est valide et que <textarea>
existe déjà lorsque CKEDITOR.replace
est appelé (fonctionne async??).
Utilisation
CKEDITOR.appendTo( 'txt' ); for DOM elements
CKEDITOR.replace( 'textarea' ); for textarea
Ok mec essayer ceci aussi
les fonctions appendTo et replace sont toutes situées dans le fichier themedui.js
essayez de l'ajouter séparément, voici le lien
Le problème peut être inclus:
<script src="{{ asset('js/app.js') }}" defer></script>
Essayez de l'enlever. Cela peut résoudre votre problème
J'ai eu un problème similaire et l'ai réglé en procédant comme suit:
<script src="/vendor/unisharp/laravel-ckeditor/ckeditor.js"></script>
<script>
if($("textarea").length > 0){
CKEDITOR.replace( 'ckeditor' );
}
</script>
si vous voulez juste vous en débarrasser, utilisez
try{CKEDITOR.replace('body')}catch{}
cKEDITOR s’ouvrira là où vous le souhaitez.