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 une fonction javascript peut-elle mettre des accents dans un label?


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut Comment une fonction javascript peut-elle mettre des accents dans un label?
    Bonjour à tous.

    J'ai cherché comment modifier le contenu d'un label avec javascript.
    J'ai trouvé plusieurs avis contradictoires (modifier le champ "value" ou "textContent" ou "innerHTML").
    Lequel est le plus portable?

    Je fais mes essais avec Safari ou FireFox 10.0 sous Mac OS X 10.6.8
    La modification du champ "value" ne produit rien.
    La modification du champ "textContent" fonctionne pour des chaines simples, mais une chaine comme "été" s'affiche telle quelle.
    La modification du champ "innerHTML" affiche effectivement "été", mais j'ai vu des articles conseillant de se méfier de "innerHTML".

    Que me conseillez-vous?

    Merci de vos avis éclairés

    )jack(

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    bonjour
    essaye tout d'abord de mettre ceci dans ta balise <head> : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    tu pourras écrire 'é' et pas '&eacute;'
    (marquer un post résolu si vous êtes satisfait de la réponse )
    ma page launchpad https://launchpad.net/~inizan-yannick
    ma page github : https://github.com/inizan-yannick

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par rotrevrep Voir le message
    bonjour
    essaye tout d'abord de mettre ceci dans ta balise <head> : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    tu pourras écrire 'é' et pas '&eacute;'
    D'abord, merci d'avoir répondu!
    Si c'était si simple...
    En fait, je n'ai pas "écrit" moi-même les données. Elles proviennent d'un fichier Word qui m'a été fourni et qui, le cas échéant, peut évoluer, voire être remplacé par un autre pour générer une autre page. Je souhaite donc un maximum d'automatisme pour l'évolutivité de la page en fonction des données.

    Et je n'ai pas trouvé de méthode simple et fiable me permettant d'avoir les "bons" caractères accentués et les bons retours à la ligne. En fait, j'ai du mal à bien comprendre le principe d'encodage (surtout qu'il est en partie automatique (et obscure) sous emacs) et je n'ai vraiment confiance qu'en l'ASCII, d'où mon choix de convertir les données.

    Pour la petite histoire, j'ai écrit un script (en ksh) qui prend en entrée un fichier de description des caractères accentués et qui génère un script de conversion (en perl), lequel prend en entrée un fichier texte et génère un fichier JavaScript contenant les appels aux constructeurs de mes classes pour générer les données (avec accents au format html).

    Lorsque je reçois une nouvelle version du fichier Word, je l'ouvre avec une vieille version de Word sous Mac OS X, je l'enregistre au format "texte (MS-DOS)" (expérimentalement, c'est ce que j'ai trouvé de moins pire(!)), puis je le donne à mon convertisseur qui génère le fichier JavaScript correspondant qui va contenir diverses lignes du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (jd_add_cat "C&eacute;l&eacute;bration");
    De cette manière, j'espère avoir une bonne portabilité.

    Et ma question est et reste donc: quelle est la meilleure manière d'afficher cette chaîne?

    Question subsidiaire: en faisant des essais, je me suis aperçu que je n'avais pas nécessairement besoin d'un label pour afficher une chaîne de caractères dans une page html. Je peux le faire avec un simple "<p>" ou un "<h1>" pourvu qu'il soit identifiable. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    partie HTML:
    <p id="mon_titre"></p>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    partie JavaScript (appelée par clic sur un bouton):
    document.getElementById("mon_titre").innerHTML = jd_get_data(); // "C&eacute;l&eacute;bration"
    Tout cela est-il correct?
    Comme je suis tout débutant (depuis un mois) en JavaScript, j'aimerais avoir l'avis des experts sur la question.
    Merci d'avance
    )jack(
    PS: pour ceux que ça intéresse, le fichier qui me sert d'entrée au générateur du convertisseur a été écrit (avec emacs) avec des lignes contenant, par exemple: "é &eacute;", puis copié/collé dans Word (où il apparaît correctement (au passage, merci pour l'interopérabilité Aquamacs/Word sous Mac OS X)), puis je sauve le fichier au même format que le fichier de données (texte (MS-DOS)). Lorsque je regarde son contenu, que ce soit dans le terminal (avec cat ou od), dans vi ou dans emacs, je vois que les caractères accentués ont été remplacés (je crois me souvenir, par exemple, que le "é" est transformé en C-cédille majuscule), ce que je retrouve texto dans le convertisseur perl généré (qui contient des lignes du genre "remplacer C-cédille majuscule par '&eacute;'"), mais, comme c'est le même codage que le fichier de données, le convertisseur fonctionne parfaitement (j'ai juste eu un petit problème avec le '&oelig;' et le '&Agrave' (qui sont tous deux convertis en '_') que j'ai pu résoudre avec une petite astuce contextuelle.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <label id="test"></label>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('test'). textContent="été"
    c'est on ne peut plus simple il me semble
    A+JYT

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

Discussions similaires

  1. Fonction RETAIN, peut-elle avoir des conditions ?
    Par Julia333 dans le forum SAS Base
    Réponses: 0
    Dernier message: 05/04/2012, 11h18
  2. Une page HTML peut-elle sauvegarder des donnees?
    Par ValyGator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 31/10/2009, 10h37
  3. Réponses: 9
    Dernier message: 19/02/2009, 12h40
  4. Réponses: 2
    Dernier message: 19/12/2005, 22h54
  5. Réponses: 2
    Dernier message: 27/03/2005, 16h09

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