Limiter la taille d'un champ avec FCKEDITOR

WRInaute discret
Bonjour,

Voilà, je viens de faire évoluer mon site en ajoutant l'éditeur de texte FckEditor.
Mon problème est que je souhaiterais limiter la taille du texte que l'on peut entrer dans le champ.

Jusqu'ici j'utilisais un textarea simple avec un code javascript qui me permettais d'afficher le nombre de caractères restants dans une balise div.

Est-ce possible de faire la même chose (si possible en utilisant le même javascript) avec FckEditor??

Voici le code JS:
Code:
////Calcul la longueur restante à entrer dans le message////
function calculeLongueurMsg(){
   var iLongueur, iLongueurRestante;
   iLongueur = document.getElementById('Commentaire').value.length;
   if (iLongueur>1000) {
      document.getElementById('Commentaire').value = document.getElementById('Commentaire').value.substring(0,1000);
      iLongueurRestante = 0;
   }
   else {
      iLongueurRestante = 1000 - iLongueur;
   }
   if (iLongueurRestante <= 1){
      document.getElementById('indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;re&nbsp;restant.";
   }else{
      document.getElementById('indic').innerHTML = iLongueurRestante + "&nbsp;caract&egrave;res&nbsp;restant.";
  }  
  
}



L'appel de l'éditeur

Code:
              $oFCKeditor = new FCKeditor('Commentaire') ;
              $oFCKeditor->BasePath = './fckeditor/' ;
              $oFCKeditor->Width = '100%';
              $oFCKeditor->Height = '500';
              $oFCKeditor->ToolbarSet = 'Perso';
              $oFCKeditor->Value = $Tour ;
              $oFCKeditor->Create() ;

et ma balise div:

Code:
<div align=center id='indic' widht=50%>
          500 caractères restant.
 </div>

Si quelqu'un a une idée...

Merci!
 
WRInaute impliqué
yep moi pour avoir pas mal bosser à customiser fckeditor !

Déjà 1, avec fckeditor vu que tu peux mettre du html, tu vas compter le formatage avec, et non juste le texte saisi est-ce bien cela que tu veux ?

Ensuite si tu regardes le codé généré par fckeditor avec firebug tu te rends compte qu'il utilise des iframe et encore en fonction de certain navigateur il fait différement..

essaye déjà pour voir de placer un lien qui affichera en live le contenu actuelle de ton fck (en vue de compter)

Code:
function disfck() {

if(navigator.userAgent.indexOf('Opera 5') != -1) {
		content =  document.getElementById('Commentaire').value;
	}
	else if( navigator.userAgent.indexOf('MSIE') != -1) {
		content = document.frames['Commentaire___Frame'].document.frames['eEditorArea'].document.body.innerHTML;
	}
	else if( navigator.userAgent.indexOf('Mozilla') != -1) {
		content = document.getElementById('Commentaire___Frame').contentDocument.getElementById('eEditorArea').contentDocument.body.innerHTML;
	}
	else if(document.getElementById('Commentaire___Frame')) {
		content = document.getElementById('Commentaire___Frame').contentDocument.getElementById('eEditorArea').contentDocument.body.innerHTML;
	}
	else {
		content = document.getElementById('Commentaire').value;
	}
        alert( content );



}

<a href="#" onclick="disfck();return false">disp content</a>
 
Discussions similaires
Haut