Cours 2 – Compléments avancés DOM & Évènements
Quelques points supplémentaires
Pêle-mêle :
innerText
vstextContent
innerText
regarde l’apparence du texte (est-il caché ? en majuscule ?), tandis quetextContent
renvoie le contenu texte brutdocument.cookie
accède aux cookies.- Pour des raisons de sécurité,
on doit limiter au maximum les cookies lisibles en JavaScript en leur donnant l’attribut
httpOnly
. - Éviter de mettre dans des cookies les données utiles seulement au client, car elles sont envoyées systématiquement au serveur.
UtilisezlocalStorage
etsessionStorage
pour stocker des données uniquement pour le client.
- Pour des raisons de sécurité,
on doit limiter au maximum les cookies lisibles en JavaScript en leur donnant l’attribut
.value
vssetAttribute("value", ...)
:
Attention,inputElement.value
modifie la valeur courante de l’<input>
(qui sera donc effacée par le boutonreset
du formulaire), tandis queinputElement.setAttribute("value", ...)
change la valeur par défaut (qui se voit tant que l’utilisateur ne l’a pas changée).
Source- Exemples d’utilisation de la propagation d’évènement
En gros,
this
pointe vers la balise possédant le gestionnaire d’évènement, commecurrentTarget
- Capturing events
On peut aussi écouter les évènements lors de la phase de capture, c-à-d lorsqu’ils cherchent leur cible en descendant dans le DOM - Inclure des données JSON dans une page Web
Utile dans un scénario où les données sont générées par le serveur - contentEditable
Pour permettre l’édition d’une partie de la page Web - Pour ouvrir un lien dans une nouvelle fenêtre, utilisez l’attribut
target="_blank"
de la balise<a>
. - Duck typing
Les interfaces n’existent pas en JavaScript. En effet, un prototype est dynamique et peut voir ses méthodes évoluer.
On peut tout de même émuler les interfaces en vérifiant la présence des méthodes voulues. - Que vaut
this
dans un gestionnaire d’évènement