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 :

Passage d'une chaine à une fonction javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut Passage d'une chaine à une fonction javascript
    Bonjour,

    Je travaille en .net c# et je tente de passer une chaîne de caractère à une fonction javascript depuis mon code behind.

    Je n'ai aucun souci sur des chaines simples, mais dès que cela devient complexe, je plante sur des caractères spéciaux.

    J'ai bien remplacé les " par \" mais ca ne semble pas suffire, il y en a d'autres qui empechent le bon fonctionnement.

    Exemple d'une chaine: (qui affiche un petit texte avec une couleur et une police... pas bien compliqué normalement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "<p><span style="font-size: medium; color: #000000; background-color: #ff6600;"><span style="font-size: xx-large;">coucou</span>, c'est juste <strong>un test</strong></span></p>  <p><span style="background-color: #ffff00;">voilou</span></p>  <p>&nbsp;</p>  <p><span style="background-color: #ffff00;"><span style="font-family: arial black,avant garde; font-size: small;"><em><span style="text-decoration: underline;"><span style="background-color: #339966;">c'est modifi&eacute; ^^</span></span></em></span><br /></span></p>"
    Que dois-je faire ?
    y a t'il une méthode toute faite pour faire cela ?

    MErci d'avance,

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    le plus simple me semble t-il est de mettre ta chaine entre '
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaine = 'la chaine incluse';
    dans ce cas les doubles quote, ", ne pose pas de problème
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaine = 'la chaine "incluse" avec des doubles quote';
    et pour insérer une simple quote, ', il faut échapper celle ci avec un antislash \
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var chaine = 'la chaine c\'est rompue';

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut
    Effectivement tes conseils marchent très bien dans la fonction javascript.

    Mais mon souci est que je l'appelle depuis le code behind.. Et la cela ne change rien...

    Je génère en fait dynamiquement un évènement sur un GridView.

    e.Row.Attributes.Add("onmouseover", "FctJavaScript('" + chaine + "')");

    Je seche un peu sur la syntaxe de la chaine...

    Une idée ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    dans ce cas il faur également échapper les " avec un \
    ta chaine devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '<p><span style=\"font-size: medium; color: #000000; background-color: #ff6600;\"><span style=\"font-size: xx-large;\">coucou</span>, c\'est juste <strong>un test</strong></span></p> <p><span style=\"background-color: #ffff00;\">voilou</span></p> <p>&nbsp;</p> <p><span style=\"background-color: #ffff00;\"><span style=\"font-family: arial black,avant garde; font-size: small;\><em><span style=\"text-decoration: underline;\"><span style=\"background-color: #339966;\">c\'est modifi&eacute; ^^</span></span></em></span><br /></span></p>'

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Par défaut
    Oulah je dois m'y prendre comme un pied

    Bon voici le code C#.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    string MaChaine = ... (lecture colonne de table SQL)
     
    MaChaine.Replace('"', '\"');
     
    MaChaine= " ' " + MaChaine + " ' ";
     
    e.Row.Attributes.Add("onmouseover", "FctJavaScript( ' " + MaChaine+ " ')");
     
    Et le code Javascript:
     
    function ShowTip(MaChaine) 
            {
                document.getElementById("Label1").innerHTML = MaChaine;              
            }
    Au final Firebug me dit soit :
    - missing ) after argument list
    soit d'autres messages sur des caracteres manquants...

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    en C# je ne sais pas mais en javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var chaine = 'c\'est "bien"';
    chaine= chaine.replace(/"/g, '\\"');
    alert( chaine);
    le \ étant un caractère d'échappement il faut l'échapper

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/11/2010, 18h22
  2. [RegExp] Détecter des combinaisons dans une chaine une par une
    Par vermine dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/06/2010, 13h22
  3. Réponses: 11
    Dernier message: 05/12/2008, 10h31
  4. Réponses: 4
    Dernier message: 01/05/2008, 18h15
  5. Réponses: 4
    Dernier message: 26/12/2005, 17h01

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