web-dev-qa-db-fra.com

CKEditor getEditor () Erreur, Comment le réparer?

<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

12
Bip

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??).

15
oleq

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

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

3
jayadevkv

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

0
Ismoilov Amir

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>
0
MJCoder

si vous voulez juste vous en débarrasser, utilisez 

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

cKEDITOR s’ouvrira là où vous le souhaitez. 

0
Sanjay