IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Deux fonctions sur la même chaîne.


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 23
    Points
    23
    Par défaut Deux fonctions sur la même chaîne.
    Bonjour! J'hésitais à poser ma question dans jquery ou ici mais bon, voyez vous-même:

    Dans mon système de chat, j'ai une fonction js se nommant replaceEmoticons() qui fonctionne bien mais j'ai voulu ajouter aussi une fonction "url_to_link()" afin de rendre les liens cliquables dans la fenetre de chat. Mais j'essaie d'appliquer ces 2 fonctions à ma chaine et il n'y a qu'une sur deux qui marche.

    Ce code est bon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+replaceEmoticons(item.m)+'</span></div>');
    Et celui-ci aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+url_to_link(item.m)+'</span></div>');
    mais celui-ci, non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+url_to_link(replaceEmoticons(item.m))+'</span></div>');
    J'ai aussi essayé de mettre de cette façon:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    item.m = replaceEmoticons(item.m);
    item.m = url_to_link(item.m);
     
    $("#chatbox_"+chatboxtitle+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+item.f+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+item.m+'</span></div>');
    Mais sans succès... Comment devrais-je procéder? Devrais-je faire une seule fonction qui remplace les smyleys et qui gère les lien en même temps?

    Voici mes 2 fonctions:

    SMYLEYS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    function replaceEmoticons(text) {
      var emoticons = {
        ':D' : 'rire.png',
        ':P'  : 'grimace.png',
        ':)'  : 'sourire.png',
        'o0'  : 'perdu.png',
    	':-/'  : 'confus.png',
    	':S'  : 'merde.png',
    	':('  : 'triste.png',
    	';)'  : 'clindoeil.png',
    	':|'  : 'neutre.png',
    	':c'  : 'pleurer.png',
    	';P'  : 'grimace.png',
    	':vball:'  : 'vball.gif',
      }, url = "../images/smilies/", patterns = [],
         metachars = /[[\]{}()*+?.\\|^$\-,&#\s]/g;
     
      // build a regex pattern for each defined property
      for (var i in emoticons) {
        if (emoticons.hasOwnProperty(i)){ // escape metacharacters
          patterns.push('('+i.replace(metachars, "\\$&")+')');
        }
      }
     
      // build the regular expression and replace
      return text.replace(new RegExp(patterns.join('|'),'g'), function (match) {
        return typeof emoticons[match] != 'undefined' ?
               '<img src="'+url+emoticons[match]+'"/>' :
               match;
      });
    }
    LIENS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function url_to_link(text) {
        var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
        return text.replace(exp,"<a href='$1'>$1</a>"); 
    }
    Merci d'avance pour votre aide!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 58
    Points : 23
    Points
    23
    Par défaut
    Bon, cette question peut être retirée; il s'agissait d'une erreur de conflit entre une fonction php et une javascript qui agissaient sur la même chaîne avec un fichier différent!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Deux fonctions sur un même sélecteur
    Par manuzed78 dans le forum jQuery
    Réponses: 2
    Dernier message: 21/01/2014, 11h12
  2. Comment disposer deux formulaires sur la même ligne ??
    Par soad029 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 05/05/2007, 04h14
  3. [Thread] deux joueurs sur le même clavier
    Par homeostasie dans le forum SDL
    Réponses: 16
    Dernier message: 04/11/2006, 15h30
  4. Réponses: 6
    Dernier message: 28/09/2005, 10h24
  5. installation de deux serveurs sur une même machine
    Par desdak dans le forum Installation
    Réponses: 1
    Dernier message: 29/06/2005, 23h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo