Modifier font-size

Eléphant du PHP | 447 Messages

18 févr. 2010, 08:10

Hello,

énoncé rapide de mon problème:

j'ai un div <div class="format_text entry-content">, l'utilisateur doit pouvoir modifier la taille du texte contenu dans ce div...

J'ai commencé à écrire ceci:
<script type="text/javascript">
function modifsize(getsize) {

var modsize = document.getElementById("entry-content");

modsize.style.fontSize = getsize;

}
</script>
Puis j'invoque la fonction ainsi: <a href="#" onclick="modifsize('15px')">

Vu que ça ne marche pas, j'en déduis qu'il manque quelque chose à mon code javascript...

Que faut-il donc faire pour arriver au but recherché? Merci beaucoup!!
Probably (only a) Human Problem?

ViPHP
ViPHP | 2287 Messages

18 févr. 2010, 10:25

Salut,

Déduction rapide... Tout comme l'écriture de ton code je pense.
<div class="format_text entry-content">
var modsize = document.getElementById("entry-content");
D'ailleurs, avec ce code tu aurais dû avoir des messages d'erreur JS dont tu ne nous a pas parlé (du genre modsize.style is not an object) qui t'auraient mis sur la voie, je pense que tu ne les a tout simplement pas vus.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 447 Messages

18 févr. 2010, 10:32

La déduction c'est que je ne peux pas utiliser getElementById sur une class?

Comment procéder alors?
Probably (only a) Human Problem?

ViPHP
ViPHP | 2287 Messages

18 févr. 2010, 10:43

La déduction c'est que je ne peux pas utiliser getElementById sur une class?
:shock: (désolé de t'expliquer ça, pour moi ça coulait de source) Oui, un id c'est un id, une classe c'est une classe (et un "name" c'est un "name"). Et sauf rare exception (internet explorer et document.all, mais on va dire que ça ne compte pas) y'a pas de mélange possible.

Ici l'ouverture de ton div devrait plutot ressembler à ça :

Code : Tout sélectionner

<div class="format_text" id="entry-content">
Attention, un id html doit être parfaitement unique dans le document (et le fait que tu ne me parles pas du message d'erreur que je te citais plus haut me fait un peu peur pour ce point - est-ce que tu regardes ta console d'erreur javascript ?), je t'invite à vérifier . Dans le cas contraire une instruction comme getElementById, qui comme son nom l'indique ne retourne au maximum qu'un seul noeud DOM, ne peut pas fonctionner correctement (ou donner un résultat hasardeux).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 447 Messages

18 févr. 2010, 10:56

Merci pour ta réponse! :)

Effectivement je n'ai pas pensé à regarder les indications d'erreurs (utilisant très peu js que je connais très mal...).

Par ailleurs je ne souhaite pas modifier le code html à ce niveau (ajouter un id au div en question)... (c'est le code d'une page d'un blog (wordpress) qu'un ami m'a demandé de modifier, avec un thème particulier ("thesis" (c'est le nom du thème)) dans lequel je me suis perdu pour essayer de trouver la cohérence des différents dossiers et fichiers...)

Aussi quelle est la formulation pour agir sur une class et non sur un id? getElementByClass...? : D
Probably (only a) Human Problem?

ViPHP
ViPHP | 2287 Messages

18 févr. 2010, 11:12

Merci pour ta réponse! :)

Effectivement je n'ai pas pensé à regarder les indications d'erreurs (utilisant très peu js que je connais très mal...).

Par ailleurs je ne souhaite pas modifier le code html à ce niveau (ajouter un id au div en question)... (c'est le code d'une page d'un blog (wordpress) qu'un ami m'a demandé de modifier, avec un thème particulier ("thesis" (c'est le nom du thème)) dans lequel je me suis perdu pour essayer de trouver la cohérence des différents dossiers et fichiers...)

Aussi quelle est la formulation pour agir sur une class et non sur un id? getElementByClass...? : D
Ton intuition est juste. getElementsByClassName serait idéal pour toi... Si ça existait ;-) Cette fonction, très demandée par les développeurs web, est actuellement implémentée par certains navigateurs récents (Safari) mais n'est pas universellement accessible.

Tu peux tester son existence pour ton navigateur très facilement en insérant le code javascript suivant dans une page :

Code : Tout sélectionner

if(document.getElementsByClassName) window.alert("youpi, on l'a"); else window.alert("on ne l'a pas :(");
La bonne nouvelle c'est que la plupart des frameworks javascript implémentent une telle fonction (et souvent bien plus encore). Un framework, au sens javascript, n'a pas grand chose à voir avec un framework php et ne t'impose pas de tout faire avec lui.

Dans tous les cas le fait de ne pas pouvoir te baser sur l'id, je ne te le cache pas, va te compliquer la vie. Si tu ne le souhaites vraiment pas, je vais donc te recommander le téléchargement et l'utilisation de jQuery.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Eléphant du PHP | 447 Messages

18 févr. 2010, 11:28

argh...

Bon le mieux c'est que je passe par un id!

Me reste plus qu'à trouver quel fichier modifier afin de rajouter un id à ce fameux div... mais là je galère depuis tout à l'heure avec ça.

Encore merci calimero! : )
Probably (only a) Human Problem?

Mammouth du PHP | 2937 Messages

18 févr. 2010, 11:53

Dans le DOM, il y a la propriété className qui permet d'accéder au nom de la classe de l'élément en question, voire de la définir. ;)

Eléphant du PHP | 447 Messages

18 févr. 2010, 13:55

Merci pour l'info et le lien Victor! : )
Probably (only a) Human Problem?