Dans mon apercu automatique, j'arrive à interpeter certains msileys, du genre (sans les espaces) :d, : p, :lol :, etc.
Mais, lorsque que j'essaye d'interpreter les smileys contenant une parenthèse (genre :-) ou encore ;-)), ou encore une barre oblique (genre :/), eh bien là, catastrophe, mon apercu ne marche même plus.
Voici le code :
/* DEB VARIABLE SMILEY */ var smile_name = new Array(' ', ' ', ' ', ' ', ' -_-\'', '');
var smile_path = new Array('2.gif','3.gif','6.gif','8.gif','10.gif','11.gif');
/* FIN VARIABLE SMILEY */
/*.... Un peu plus loin ....*/
for (i = 0; i < smile_name.length; i++)
{
eval('reg = /(\\s|\\r|^|>)' + smile_name[i] + '(\\s|\\r|$|<)/gi');
texte = texte.replace(reg, '$1 <img src="/images/smylies/' + smile_path[i] + '" alt="' + smile_name[i] + '" /> $2');
}
Ce code là marche, mais lorsque j'essaye donc de mettre les smileys qui posent probleme, rien ne almrche. J'ai essayé d'echapper les caractères qui posent problèmes, mais rien n'y fait Oo
<!-- tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP --> function deblaie(reg,t){
textarea=new String(t); return textarea.replace(reg,'$1\n'); } function remblaie(t){
textarea=new String(t); return textarea.replace(/\n/g,''); } function remplace_tag(reg,rep,t){
textarea=new String(t); return textarea.replace(reg,rep); } function nl2br(t){
textarea=new String(t); return textarea.replace(/\n/g,'<br/>'); } function nl2khol(t){
textarea=new String(t); return textarea.replace(/\n/g,ptag); } function unkhol(t){
textarea=new String(t); return textarea.replace(new RegExp(ptag,'g'),'\n'); }
J'ai adapté celle du tuto pour afficher tout mes smilies...
C'est pas très beau, je trouve, d'avoir répeter les remplace-tag, j'aurais préféré un array mais je n'ai pas réussi...
Tiens moi au courant si t'y arrive avec les arrays
[JS] Smileys dans un apercu automatique
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.