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 :

Changement de police par select


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut Changement de police par select
    Bonjour,

    J'arrive à proposer une sélection globale de police de caractère grâce à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="police" onchange="document.body.style.fontFamily=this.value;">
    <option value="">----</option>
    <option value="Arial">Arial</option>
    <option value="Courrier">Courrier</option>
    <option value="Tahoma">Tahoma</option>
    </select>
    Cela vient bien prendre le pas sur le paramétrage de ma feuille de style.



    Par contre, quand je veux appliquer cela uniquement à certains éléments du texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="police2" onchange="document.getElementById(\"debuttext\").style.fontFamily=this.value;">
    <option value="">----</option>
    <option value="Arial">Arial</option>
    <option value="Courrier">Courrier</option>
    <option value="Tahoma">Tahoma</option>
    </select>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="police3" onchange="document.getElementByClass(\"anglais\").style.fontFamily=this.value;">
    <option value="">----</option>
    <option value="Arial">Arial</option>
    <option value="Courrier">Courrier</option>
    <option value="Tahoma">Tahoma</option>
    </select>
    cela ne fonctionne pas.


    Dans le HTML, on trouve des choses comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id='debuttext'> blablabla
    blablabla
    blablabla</div>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class='anglais'> do yo speak english ? </div>
    <div class='français'> parlez-vous anglais ? </div>
    <div class='anglais'> blablabla </div>
    Merci de vos retours

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    onchange => modification + perte de focus, autrement dit si le select conserve le focus le onchange ne se declenche pas ...
    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 du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    Je ne pense pas que mon dysfonctionnement de là car si je mets à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    onchange="alert('Index: ' + this.selectedIndex + '\nValeur: ' + 
      this.options[this.selectedIndex].value)">
    Cela fonctionne impeccable et this.options[this.selectedIndex].value contient bien le libellé de la police choisie




    J'ai finalement trouvé. Si j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name='police2' 
    onchange='document.getElementById("debuttext").style.fontFamily=this.value'>
    à la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name="police2" 
    onchange="document.getElementById(\"debuttext\").style.fontFamily=this.value">
    cela fonctionne très bien


    Si quelqu'un peut m'expliquer la subtilité... Apparemment les guillemets c'est pas pareil qu'en php.

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par Tibalpa Voir le message
    J'ai finalement trouvé. Si j'écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name='police2' 
    onchange='document.getElementById("debuttext").style.fontFamily=this.value'>
    à la place de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <select name="police2" 
    onchange="document.getElementById(\"debuttext\").style.fontFamily=this.value">
    cela fonctionne très bien


    Si quelqu'un peut m'expliquer la subtilité... Apparemment les guillemets c'est pas pareil qu'en php.
    ah bah oui

    quand on a un événement géré dans une balise c'est sous cette forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onXXX = "..." ou onXXX = '...'
    jusque là on est d'accord
    et quand on a besoin d'utiliser une chaîne dans cette gestion d'événement, on place cette chaîne entre simple quote si le code est entre double-quote, ou entre double-quote si le code est entre de simple quote...

    là ce que tu avais fait, ce n'est pas une chaine de caractère \"debuttext\" contenant le texte debuttext, mais c'est écrire le caractère double quote (c'est bien LE caractère " puisqu'il est échappé) suivant d'un <truc> debuttext et suivi d'un autre caractère "
    :br: erreur de syntaxe en somme pour le navigateur qui ne peux pas s'y retrouver. il essaie d'interpréter l'argument de getElementById comme une chaîne, mais ce n'est pas possible.

    on écrit \" uniquement pour afficher le caractère " dans un texte, on écrit " pour débuter une chaîne de caractère javascript

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Par défaut
    Merci beaucoup pour ces explications. Maintenant je comprends mieux...

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

Discussions similaires

  1. Latex et Changement de la police par defaut
    Par GuiYom00 dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/01/2008, 09h55
  2. changement d'image par radio boutton
    Par ph_anrys dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/03/2005, 16h27
  3. Réponses: 9
    Dernier message: 27/10/2004, 01h31
  4. Couleur des police par defaut.
    Par Blo0d4x3 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 22/10/2004, 13h46
  5. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35

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