2009-10-10 7 views
-1

J'utilise Greasemonkey pour remplacer un éditeur KTML avec CKEditor. Je commence par me débarrasser de KTML, puis je charge jQuery, puis ckeditor.js et cela fonctionne, apparemment.
Mais, quand je vais remplacer le <textarea>, Firebug signale "CKEDITOR is not defined" et mon textarea reste normal. Est-ce que je les charge dans le mauvais ordre?CKEDITOR non défini par mon script Greasemonkey?

Je peux remplacer - après le chargement de la page - en entrant CKEDITOR.replace('editor1'); dans la console Firebug. CKEditor doit donc avoir été chargé par Greasemonkey.

Répondre

0

Votre problème est peut-être que le navigateur n'a pas fini de charger (et donc n'a pas analysé) le fichier js CKEditor au moment où vous essayez le .replace.

+0

J'ai essayé de faire le script d'attente jusqu'à 1,5 seconde, mais cela ne vous aide pas ... –

0

Est-ce que vous chargez la zone de texte et le script qui exécute le 'remplacer' via ajax?

Essayez ceci:

parent.CKEDITOR.replace('editor1'); 

ou

top.document.CKEDITOR.replace('editor1'); 
0

J'ai eu ce dans un site que j'avais construit en utilisant CodeIgniter. Le "CKEDITOR n'est pas défini" signifie simplement qu'il ne peut pas trouver le fichier js. Dans mon cas, je viens de modifier la réécriture d'url .htaccess, qui a brisé le chemin. Donc, si vous n'avez pas corrigé ce problème dans les 16 mois qui ont suivi, vérifiez vos chemins de fichier.

+0

Ceci ne s'applique pas à une application Greasemonkey, qui n'a aucun contrôle côté serveur de la page cible. –

0

Essayez de supprimer .htaccess à partir du dossier ckeditor. Peut-être, si votre serveur est IIS c'est un problème.

Pour moi, ça a marché!

+0

Ceci ne s'applique pas à une application Greasemonkey, qui n'a aucun contrôle côté serveur de la page cible. –

0

Au lieu de

window.onload = function() 
{CKEDITOR.replace('editor1');}; 

qui était la valeur par défaut sur le mien, essayez cette

$(function() 
{CKEDITOR.replace('editor1');}); 
Questions connexes