Compteur de caractères

Le
Pascale
Bonjour à tous,

Je cherche je cherche je cherche encore depuis des semaines et ne trouve
pas.

Avant d'expliquer quoi, je dois dire que le Javacript m'est à peu près
aussi compréhensible que le chinois médiéval ou la physique quantique.

Pour un site dont je m'occupe, j'ai besoin d'un éditeur de texte WYSIWYG
simple et fiable. Après de multiples tests dans tous les sens, j'ai arrêté
mon choix sur l'un des plus simples, qui fait exactement ce que je veux
sans être une usine à gaz : Nicedit.
Seulement voilà, Nicedit n'a pas de compteur de caractères et j'ai beau en
essayer et en réessayer, aucun ne semble vouloir marcher, et j'avoue que ça
me désespère un peu.

Par exemple, le dernier en date que j'ai essayé d'intégrer est celui-ci
(source du compteur de caractères http://pagesperso-
orange.fr/bernard.langellier/info/ltexte3.htm) :

<head>
<script type = "text/javascript">
function compter(f) {
var maxP0;
var txt=f.descrtemp1.value +1;
var nb=txt.length;
var reste=max-nb;
if (nb>max) {
alert("Vous avez dépassé le nombre maximal de caractères qui est de "
+ max +".");
f.descrtemp1.value=txt.substring(0,max);
nb=max;
}
f.nbcar.value=nb;f.restcar.value=reste;
}
</script>
</head>
<body>
<h1>Test d'éditeur WYSIWYG</h1>
<script type="text/javascript" src="nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script>
<form name="form1" action="voirtest.php" method="post">
<textarea name="descrtemp1" rows="10" cols="100" width="100%"
onkeypress="compter(this.form)">'.$_SESSION['descrtemp1'].'</textarea>
<p>Nombre de caractères déjà affichés :
<input type="text" name="nbcar" />
<br />Nombre de caractères restants :
<input type="text" name="restcar" />
</p>
<input type="image" name="submit" src="images/visu.gif" align="middle"
alt="Visualiser">
</form>
</body>

Le nombre de caractères déjà affichés et restants est désespérément vide !

Franchement, je ne sais plus quoi faire, j'ai essayé des dizaines de
scripts et aucun ne marche (je suis bien incapable d'en écrire un moi-
même).

Merci pour votre aide.

--
Pascale
http://www.la-grille-verte.net
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal PONCET
Le #19781401
Pascale a écrit :
Bonjour à tous,



Bonjour Pascale,

Avant d'expliquer quoi, je dois dire que le Javacript m'est à peu près
aussi compréhensible que le chinois médiéval ou la physique quantique.



Alors faudra pas faire compliqué, sinon y a qu'à conduire une F1 sans
permis aussi ! ;-)

Pour un site dont je m'occupe, j'ai besoin d'un éditeur de texte WYSIWYG
simple et fiable. Après de multiples tests dans tous les sens, j'ai arrêté
mon choix sur l'un des plus simples, qui fait exactement ce que je veux
sans être une usine à gaz : Nicedit.



Connais pas. Un "standard" est FCK-Editor, mais peut-être un peu lourd
dans les dernières versions (par contre assez ancien donc très éprouvé).

Seulement voilà, Nicedit n'a pas de compteur de caractères et j'ai beau en
essayer et en réessayer, aucun ne semble vouloir marcher, et j'avoue que ça
me désespère un peu.



Dommage que l'éditeur en question n'en propose pas, natif ou en plugin.
Moi je chercherais dans cette direction, plutôt que de bricoler.

En plus, m'est avis que le bazard utilise une "iframe" pour la partie
wysiwyg, le "textarea" ne servant que pour voir le source puis envoyer
la purée au serveur.

Du coup, ça devient tout de suite usine à gaz.
Donc je reste sur mon conseil précédent.

Cordialement,
Pascal (sans le "e")
Pascale
Le #19781451
Pascal PONCET news:4a61ebbc$0$296$:

Salut, Pascal sans e (-:

Alors faudra pas faire compliqué, sinon y a qu'à conduire une F1 sans
permis aussi ! ;-)



Pire que simple, même niveau neuneu, en Javascript, c'est déjà trop pour
moi.

Connais pas. Un "standard" est FCK-Editor, mais peut-être un peu lourd
dans les dernières versions (par contre assez ancien donc très
éprouvé).



J'ai essayé (ainsi que Tiny-MCE, qui n'a de Tiny que le nom), c'est
vraiment un monstre.

Dommage que l'éditeur en question n'en propose pas, natif ou en
plugin. Moi je chercherais dans cette direction, plutôt que de
bricoler.



C'est bien mon avis, et je ne suis pas la seule à avoir couiné (poliment,
en anglais, mais sans résultat) sur le forum de support.

En plus, m'est avis que le bazard utilise une "iframe" pour la partie
wysiwyg, le "textarea" ne servant que pour voir le source puis envoyer
la purée au serveur.



D'après ce que je vois, non.

Du coup, ça devient tout de suite usine à gaz.
Donc je reste sur mon conseil précédent.



Bigre, FCK-Editor m'avait légèrement terrorisée, je dois dire...
L'installer, c'est une chose, mais le mettre à jour, c'en est une autre...

En plus, je suis pas exigeante, tout ce que je demande c'est que les
utilisateurs puissent faire du gras, de l'italique, du souligné, justifié
comme ils veulent, taille et couleur de police à leur choix.
Éventuellement, insérer des listes ordonnées ou non ordonnées, des URL,
mais c'est même pas indispensable. Je demande même pas le chargement
d'images, ça, on le gère en PHP. Mais il me faut un compteur de
caractères...

--
Pascale
http://www.la-grille-verte.net
Mickaël Wolff
Le #19781511
Pascale a écrit :
<textarea name="descrtemp1" rows="10" cols="100" width="100%"
onkeypress="compter(this.form)">'.$_SESSION['descrtemp1'].'</textarea>



Le soucis est que les éditeurs Wisiwig en JS pour nos navigateurs
préférés n'utilisent pas le textarea. En effet, ce sera un div, qui aura
la propriété contenteditable='true' qui lui sera substituée. Du coup, ce
n'est plus le textarea qui reçoit les événements.

Normalement, tu devrais pouvoir fournir un gestionnaire spécifique à
NicEdit
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position
Pascale
Le #19782161
Mickaël Wolff news:4a61f241$0$3611$:

Normalement, tu devrais pouvoir fournir un gestionnaire spécifique à
NicEdit



Merci... Mais... question bête (une de plus) : que veux-tu dire par
« gestionnaire spécifique » ?...

--
Pascale
http://www.la-grille-verte.net
SAM
Le #19783311
Le 7/18/09 4:10 PM, Pascale a écrit :
Bonjour à tous,

Je cherche je cherche je cherche encore depuis des semaines et ne trouve
pas.



C'est le cas d'le dire :
;-)

Seulement voilà, Nicedit n'a pas de compteur de caractères et j'ai beau en
essayer et en réessayer, aucun ne semble vouloir marcher, et j'avoue que ça
me désespère un peu.

Par exemple, le dernier en date que j'ai essayé d'intégrer est celui-ci
(source du compteur de caractères



Le code que tu donnes semble être un extrait d'un code PHP, non ?

Je suppose donc que :
- c'est bien un fichier PHP
- le fichier 'nicEdit.js' est bien dans le même dossier

Si oui, je ne vois pas pourquoi ça ne fonctionnerait pas
(si Bernard Langellier l'a essayé avant de le proposer)

Bon ... oui ... ça ne fonctionne pas
(et à mon idée ne peut pas fonctionner, du moins à ce jour)

Voici qui fonctionne chez moi :
max : 55 caractères
(ne doit fonctionner que pour 1 seul éditeur)
(le form de l'éditeur doit être nommé 'form1' )

à une erreur près :
ça compte 4 caractères quand c'est vide ! ? !

--
sm
Olivier Miakinen
Le #19784161
Le 19/07/2009 02:20, SAM a écrit :

Voici qui fonctionne chez moi :
max : 55 caractères
(ne doit fonctionner que pour 1 seul éditeur)
(le form de l'éditeur doit être nommé 'form1' )

à une erreur près :
ça compte 4 caractères quand c'est vide ! ? !



Le caractère v, le caractère i, le caractère d, le caractère e : le
compte est bon.

Ok, je ->

--
Olivier Miakinen
Xavier Nayrac
Le #19784761
SAM a écrit :
Voici qui fonctionne chez moi :
max : 55 caractères
(ne doit fonctionner que pour 1 seul éditeur)
(le form de l'éditeur doit être nommé 'form1' )

à une erreur près :
ça compte 4 caractères quand c'est vide ! ? !



Bonne tentative, on se rapproche un peu de la solution.
Mais tu comptes les caractères du source html, pas les caractères
visibles par l'utilisateur, voilà le problème.

Je cherche de mon coté (pour le fun), mais n'étant pas expert en
javascript, je suis pas sûr de pouvoir aider plus que ça.

--
Xavier Nayrac
http://personalbugtracker.free.fr
Xavier Nayrac
Le #19784911
Xavier Nayrac a écrit :
Mais tu comptes les caractères du source html, pas les caractères
visibles par l'utilisateur, voilà le problème.




Déjà évoqué hier par Mickaël Wolff. J'avais pas tout lu.

--
Xavier Nayrac
http://personalbugtracker.free.fr
Xavier Nayrac
Le #19785351
SAM a écrit :
Voici qui fonctionne chez moi :
max : 55 caractères
(ne doit fonctionner que pour 1 seul éditeur)
(le form de l'éditeur doit être nommé 'form1' )

à une erreur près :
ça compte 4 caractères quand c'est vide ! ? !




En ajoutant à ton code une fonction pour supprimer les tags,
trouvée ici : http://www.ozoneasylum.com/5782
on se rapproche encore. Il reste des problèmes avec les espaces, et
surement d'autres que je n'ai pas vu.

<script type = "text/javascript">
var Pasc_Edit;

function Pascale() {
var edits = document.getElementsByTagName('DIV'), n = edits.length,
edit;
while(n--) {
if(edits[n].className.indexOf('nicEdit-main')>=0) {
edit = edits[n];
}
}
edit.addEvent('keyup',function() { compter(document.form1); });
Pasc_Edit = edit;
edits = edit = n = null;
compter(document.form1);
}

function stripHTML(oldString) {
var newString = "";
var inTag = false;
for(var i = 0; i < oldString.length; i++) {
if(oldString.charAt(i) == '<') inTag = true;
if(oldString.charAt(i) == '>') {
if(oldString.charAt(i+1)=="<")
{
//dont do anything
}
else
{
inTag = false;
i++;
}
}
if(!inTag) newString += oldString.charAt(i);
}
return newString;
}

function compter(f) {
var max = 55;
var txt = Pasc_Edit.innerHTML;
txt = stripHTML(txt.toString());
nb = txt.length;
reste = max-nb;
d = document.getElementById('alarme');
d.style.display = '';
if (nb>max) {
d.innerHTML = "Le nombre maximal de caractères, qui est de
<span>" + max +
",</span> est dépassé.";
d.style.display = 'block';
Pasc_Edit.innerHTML = txt.substring(0,max);
nb = max;
}
f.nbcar.value=nb;
f.restcar.value=reste;
}
</script>

--
Xavier Nayrac
http://personalbugtracker.free.fr
Pascale
Le #19785881
SAM news:4a6266ea$0$12644$:

C'est le cas d'le dire :
<http://groups.google.com/group/fr.comp.infosystemes.www.auteurs/msg/2b
572fabb97f6e04> ;-)



Oui, c'est une histoire ancienne, mais j'avoue que, de découragement,
j'avais un peu laissé tomber. Il faut pourtant bien que je trouve une
solution.
J'ai même réinstallé l'usine à gaz TinyMCE...

Le code que tu donnes semble être un extrait d'un code PHP, non ?



Oui.

Je suppose donc que :
- c'est bien un fichier PHP
- le fichier 'nicEdit.js' est bien dans le même dossier



Oui.

Si oui, je ne vois pas pourquoi ça ne fonctionnerait pas
(si Bernard Langellier l'a essayé avant de le proposer)

Bon ... oui ... ça ne fonctionne pas
(et à mon idée ne peut pas fonctionner, du moins à ce jour)



Ça fonctionne sans Nicedit, mais pas avec.

Voici qui fonctionne chez moi :
max : 55 caractères
(ne doit fonctionner que pour 1 seul éditeur)
(le form de l'éditeur doit être nommé 'form1' )

à une erreur près :
ça compte 4 caractères quand c'est vide ! ? !



Merci... enfin l'espoir de résoudre ce fichu problème !

--
Pascale
http://www.la-grille-verte.net
Publicité
Poster une réponse
Anonyme