Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > Javascript > [Web 2.0] TP: Système de gestion de fenêtres de votre webOS ! > Création d'une fenêtre dynamiquement avec Javascript > Rappels à propos du DHTML > Lecture du tutoriel

Rappels à propos du DHTML

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : cookieslover
Note : Pas de note

Plus d'informations Plus d'informations
Nous allons donc dans ce chapitre faire un bref rappel des notions dont nous aurons besoin pour rendre notre document dynamique. Ce TP supposant que vous avez déjà certaines connaissances, je suppose que vous avez lu le tutoriel de Fedaykin sur le DHTML et JavaScript. Si ce n'est pas le cas, je vous invite à le lire ici. ;)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Savoir se positionner dans son document

Tout d'abord, nous aurons besoin de savoir comment se positionner dans notre document.

Nous allons donc revoir les différentes méthodes permettant de se balader entre les différents noeuds (node en anglais) que composent notre document.

La méthode la plus simple est le positionnement grâce à un id :

Code : JavaScript
1
var node = document.getElementById("id_du_bloc");


On a ici créé une variable node qui représente l'élément ayant pour id id_du_bloc.
Cette variable possède alors plusieurs méthodes permettant d'accéder à d'autres éléments en rapport avec celui-ci :

Code : JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
var parent = node.parentNode; //On obtient ainsi le noeud parent à node;

var childList = node.childNodes; //Ici, au contraire, on obtient un tableau avec la liste des enfants de node.

var child1 = node.firstChild; //Ici, on obtient le premier enfant de node

var childx = node.lastChild; //Et ici, vous l'aurez deviné, le dernier

var frerePrec = childx.previousSibling; //On récupère le frère précédent de childx, lui-même enfant de node)

var frereSuiv = child1.nextSibling; //On récupère ici le frère suivant

Ajouter du code XHTML dynamiquement

Après avoir vu ce dont nous aurons besoin pour nous positionner dans notre document, nous allons voir ce dont nous aurons besoin pour ajouter des éléments dans notre page.

Certains vont se dire : "c'est simple : il suffit d'utiliser innerHTML" et je leur réponds alors qu'on ne va pas l'utiliser, car il appartient à Internet Explorer et n'est pas repris dans les standards.

Comment ajouter des blocs dans notre document ?


Ça peut paraître un peu difficile quand on débute (je m'en rappelle bien), nous allons procéder ainsi : nous allons créer des éléments "virtuels", c'est-à-dire qui ne seront pas encore dans notre document, puis nous allons les imbriquer entre eux. Enfin, quand tout est imbriqué comme il faut, on les insère où on veut dans notre document.

Voici les méthodes que nous allons utiliser.

Création d'un élément


Code : JavaScript
1
var bloc = document.createElement("div"); //Ici, on crée une div "virtuelle" qui n'est pas encore dans notre document. Vous pouvez créer ce que vous voulez: div, h1, etc.


Attribution d'un attribut à cet élément


Code : JavaScript
1
div.setAttribute("id","ma_div"); //Ici, on donne pour id "ma_div" à notre élément

Si vous souhaitez ajouter un attribut class, utilisez la méthode suivante :

Code : JavaScript
1
node.className="ma_class"; //L'élément se voit attribuer la classe "ma_class"


Création d'un texte


Code : JavaScript
1
var texte = document.createTextNode("J'aime le fromage"); //Ici on a créé un texte


Apres avoir créé nos divers éléments, nous les imbriquons de cette manière :
Code : JavaScript
1
node1.appendChild(node2); //Le node2 se retrouve à l'intérieur du node1


Quand tout nos éléments virtuels sont imbriqués comme il faut, on les insère quelque part dans le document avec la même méthode :
Code : JavaScript
1
2
var node = document.getElementById("mon_id"); //On récupère un endroit spécifique de notre document
node.appendChild(node1); //On y insère tout ce qu'on a fait précédemment


Vous avez vu rapidement les diverses méthodes que nous allons utiliser dans ce TP pour l'ajout de code dans notre document. Même si cette sous-partie fut brève, vous devriez avoir compris puisque vous êtes censés avoir lu le tuto sur le DHTML et Javascript :p .

Ajouter un événement dynamiquement

Dans ce TP, nous aurons également besoin d'ajouter des événements dynamiquement aux éléments que nous créerons.

Nous utiliserons bien sûr les deux méthodes attachEvent (pour IE) et addEventListener (pour le reste) :

Code : JavaScript
1
2
if(document.all) node.attachEvent("onmousedown",fonction);
else node.addEventListener("mousedown",fonction,true);


J'ai utilisé la condition (document.all) qui vaut true si on est avec IE.
Notez bien que pour addEventListener, on n'écrit pas le on devant l'événement.
fonction est le nom de la fonction qui sera appelée lors d'un mousedown sur le node.

D'accord, mais si on veut rajouter des arguments à cette fonction ?


Dans ce cas-là, autant utiliser une fonction anonyme !
Code : JavaScript
1
2
if(document.all) node.attachEvent("onmousedown",function(){ ma_fonction(arguments) });
else node.addEventListener("mousedown",function(){ ma_fonction(arguments) },true);

Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 11/07/2007 à 21:59:57
Modifié : Aujourd'hui à 18:14:30
Avancement : 100%
Nb de visites : 3489
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | Fil RSS | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 591 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.034s (0.0158s)