

new!








|
|
|
 |
| > Problème avec visualisation automatique |
[ Posté par isagaw ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 13-08-2008 à 11:33 | 33 messages ]
  Bonjour,
J'ai crée dernièrement un script pour visualiser en temps réel le contenu d'un textarea (avec bbcode), et je suis bloqué sur un truc.
Je vous épargne tout le code.
En fait, il s'agit d'un problème de syntaxe après le traitement.
Après avoir traiter le bbcode avec la fonction replace(), et après avoir utilisé la fonction nl2br() :
function nl2br(champs) {
textarea=new String(champs);
return textarea.replace(/\n/g,'<br />');
}
|
|
c'est dans la visualisation du code source que j'ai remarqué des erreurs :
Première erreur :
Je vois à certains endroits ce code :
Seconde erreur:
Dans mon BBcode, on peut créer une liste à puce :
<liste 1>
<puce>Menu</puce>
<puce>Options</puce>
</puce>...</puce>
</liste 1>
|
|
Si on veut bien présenter dans le textarea pour s'y retrouver, on a tout intérêt à faire des sauts à la ligne entre chaque puce, ce qui a pour effet de rajouter à cause de la fonction nl2br() et après traitement du bbcode des <br />à la fin des </li>, ce qui n'est pas correcte au point de vue des normes de la w3c.
J'ai voulu traiter ces problèmes toujours avec la fonction replace() de telle sorte (pour le premier problème par exemple) :
champs=champs.replace(/<p><\/p>/g, "");
|
|
de manière à supprimer les paragraphes vides inutiles, mais ça ne marche pas. Je pense que c'est du au fait de la balise fermante </p>, puisque j'ai essayé les deux codes suivants :
champs=champs.replace(/<p>/g, "");
|
|
champs=champs.replace(/<\/p>/g, "");
|
|
et seul le premier a pour effet de supprimer toutes les balises ouvrantes <p>.
J'ai osngé à un problème lié au / de la balise fermante après traitement, mais je patauge.
Qu'en pensez-vous s'il vous plait ?
De même, je pense aussi que le second problème est lié à celui-là à cause des / de <br />.
Un dernier détail que j'ai noté qui pourrait vous aider est le fait qu'après avoir utilisé la fonction nl2br(); ci-dessus, dans mon code, j'ai des <br> et non pas des <br /> (mais ça ne change pas mon problème, car les deux ne marchent pas).
Voilà, excusez-moi d'avoir fait si long pour un si petit problème , si quelqu'un a une solution à ce problème, ce serait génial 
Bonne journée
[Message édité par isagaw le 13-08-2008 à 11:34]
________________ isagaw
 
|
|
|
[ Posté par isagaw ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 13-08-2008 à 11:43 | 33 messages ]
  Je reviens sur ce que j'ai dit 
J'ai réussis à corriger le problème avec le <br /> qui survient devant le </li>, devant le </ol>, devant le </ul>.... mais pas devant le </p> !
Donc tout tourne autour de lui.
Je n'arrive pas à transformer :
en
bien que j'y arrive devant les autres balises.
Je n'arrive pas à supprimer les :
Je sais pas quoi faire 
________________ isagaw
| [ Posté par v1nce ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 13-08-2008 à 12:01 | 3861 messages ]
  t'en es où actuellement ?
var t = "bla bla<p></p> bli bli <br /></p> <a>des balises</a>";
alert(t.replace(/<br \/><\/p>/g,"</p>"));
alert(t.replace(/<p><\/p>/g,""));
|
|
________________ V1nce
Si je les ai oubliés les bonjour, merci et au revoir sont implicites
Brevets logiciels : dites NON !
http://petition.eurolinux.org/index.html
http://swpat.ffii.org/index.fr.html
| [ Posté par isagaw ] [ Détails ] [ Contact ] [ Citer ]
[ Posté le 13-08-2008 à 12:59 | 33 messages ]
  Pour ce qui est du <p></p>, grave erreur de ma part que je viens de remarquer, du à une ligne supplémentaire qui destinait à ajouter une balise ouvrante <p> au début, et une balise fermante </p> à la fin.
Pour les <br /> par contre, j'ai pas comprit, j'avais utilisé le même code, mais maintenant, en ayant copié ton code ça marche.
Pourtant, j'avais écrit exactement la même chose :
| replace(/<br \/><\/p>/g,"</p>"); |
|
à ceci près que j'ai mis un espace entre les deux paramètres de la fonction.
En tout cas, maintenant, ça marche, même si je ne saurais jamais qu'elle a été mon erreur.
Merci beaucoup.
________________ isagaw
|
|
Services email :
  Vous devez vous identifier pour profiter des services par email du forum.
|

|