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 :

Comment avoir un string verbatim en javascript (avec du C#) ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut Comment avoir un string verbatim en javascript (avec du C#) ?
    Bonjour,

    voila je suis confronté à un problème..

    Coté serveur en ASP.Net C#, je génère du javascript en initialisant un string avec du texte récupéré depuis la base de données.

    Exemple :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Response.Write(
      "<script language='text/javascript'>var monString = \"" + monTexteDeLaBDD + "\"</script>");

    Mais voila, si le texte contient des " il y a un souci au moment de l'exécution du javascript car le " va couper mon string n'importe ou.

    Donc coté C# je fais un monTexteDeLaBDD.Replace("\"", "\\\"")

    Et là ça marche..

    Mais plus subtile, si le texte contient lui même des \ ça va encore poser problème, car par exemple un \" test va être transformé en \\" test et là, retour à la case départ, car le premier \ va être pour le deuxième \ et le guillemet va couper mon string..

    C'est un peu délicat à expliquer.

    En tout cas si quelqu'un a une idée, par exemple s'il existe une fonction ou un moyen d'avoir un string verbatim..

    par exemple en C# on met un @ avant une chaine de caractère..

    Sinon je peux toujours faire un Replace("\\", "\\\\") mais combien de Replace vais je devoir encore rajouté..

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    http://www.developpez.net/forums/sho...d.php?t=296604

    mais bon faire un document.write d'un script

    il y a dans la FAQ ou dans les codes source une methode un peu plus correcte pour ajouter des scripts sur une page ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    Remarque : pour l'instant en C# je me suis fait une méthode pratique :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
            public static string ajouteSlashes(object str)
            {
                string strtemp;            
                strtemp = Convert.ToString(str);
                strtemp = strtemp.Replace("\\", "\\\\");
                strtemp = strtemp.Replace("\r\n", "\\r\\n");
                strtemp = strtemp.Replace("\"", "\\\"");
                return strtemp;
            }

    je peux fonctionner comme ça mais ai je oublier d'autres caractères spéciaux ?
    (à part les \t etc..)

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    en fait le probmème ne veint pas tant de l'echappement des caractères que du fait d'avoir une chaine interprétée ...

    pour eviter l'interprétation de la chaine :


    mais encore une fois je ne conseille nullement cette methode pour ajouter du script dynamiquement
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    merci SpaceFrog,

    en fait je n'injecte pas du script avec document.Write à partir de code javascript .. mais depuis du code coté serveur C# ASP.Net.. car j'ai besoin de communiquer des données avec le javascript depuis mon code C# ..

    J'ai mis Response.Write dans l'exemple mais en réalité je le fais plus proprement, en C# on a des div runat="server" qui permettent de mettre ce qu'on veut dans un div pendant que la page s'auto-génère.. C'est dans un div comme ça que je met mon javascript en réalité.

    Que penses tu de la méthode addSlashes que j'ai mis dans mon post au dessus ?

    merci

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oui la focntion addslashes va bien remplacer les caractères par leur syntaxe d'echappement...

    mais si tu as une chaine de fermeture de balises script ... tu auras un souci il faut diviser tout ce qui pourrait être interprété ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    rebonjour,

    merci !

    par contre non je n'ai pas de soucis avec la balise de fermeture </script>

    vu que mon code javascript est insérer dans la page "avant" qu'elle ait fini de se construire, depuis mon code serveur

    en fait Response.Write() en C# c'est l'équivalent du echo() en php..

    Et bon alors, merci, je vais faire avec ma méthode ajouteSlashes() que j'ai conçu tout spécialement..

    Si j'ai oublié des choses merci de me dire..

    un grand merci !

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    arf ok.. je pensais que c'était interprété par javascript mais si c'est comme un echo ...

    regarde dans la faq ou les codes sources il doit y avoir des fonctions du type addslashes ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    En fait, au cas ou je me sois mal exprimé,

    le code javascript que j'insère dans ma page, je le fais depuis le code coté serveur à la manière d'un echo() en php.

    Ce code javascript, je le met (par exemple) à la fin de ma page, et le javascript s'éxécute comme il le fait normallement.. sauf que ce javascript est généré par mon code coté serveur (car il n'est pas toujours le même)

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

Discussions similaires

  1. [POI] Comment avoir une feuille Excel activée et avec le focus
    Par OrigineDeLaVie dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/08/2013, 16h59
  2. comment avoir la gestion des clés primaires avec sql serveur/EF
    Par olivier57b dans le forum Entity Framework
    Réponses: 12
    Dernier message: 12/06/2011, 14h46
  3. Comment accéder à un javascript avec une adresse web?
    Par Pragmateek dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2006, 13h52
  4. [Date] Comment transformer mon String en date avec newDate?
    Par Devil666 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/06/2005, 16h50
  5. [eclipse][plugin] Comment avoir une fenêtre avec focus
    Par relivio dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/04/2004, 15h54

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