Valid CSS!

Le Javascript Suivez le lien Valid HTML 4.01!



  1. L'ordre d'écriture

    Je viens de voir que l'ordre d'écriture est important pour des opérations devant se faire au fur et à mesure de l'affichage du fichier. C'est à dire que si on définit une variable : var avis = (navi) ? document.idAvis : document.all.idAvis.style en fonction d'un élément (nommé ici idAvis) qui sera afficher plus tard, cette définition ne donnera rien car l'item idAvis n'est pas encore connu. Pour la définition de mes sous menus dans la frame ci-contre, j'ai du faire attention à ça : je voulais mettre tout le code javascript dans la section head, ceci a été impossible.

  2. Les "Form"

    Là, on rentre vraiment dans la programmation, c'est ce qui m'intéresse. Je vais encore commencer par le fichier Poids_Taille.html pour parler cette fois des zones de communication : les boutons radio, et les zones texte. Vous pouvez aussi regarder mes exemples en électronique : tirage de DS ou test.

    Commençons par les boutons radio, il faut regrouper un type (ou famille) de données par nom comme ici "Dp", "Sexe", "Race" pour les trois premiers (voir dans le corps du fichier HTML : body). Un seul élément peut-être coché parmi une famille. Il faut faire attention à l'ordre car par la suite, on saura uniquement si c'est le ième bouton qui est coché si form.nom[i-1].checked vaut 1. J'ai beau avoir mis un nom à chaque item de la famille, ceci ne m'a donné aucun avantage : à vous de le trouver, ça m'intéresse! Dans ce fichier, j'ai aussi bien imposé des valeurs aux familles (au démarrage avec un item sélectionné "checked" ou en fonction de tirage aléatoire dans la procédure Tire_pt) que lu les items sélectionnés dans la procédure Calcul_pt. Pour repérer l'item choisi, j'ai fait une procédure, la function rang, qui fourni le rang de l'item sélectionné. Cette procédure, la dernière de mes procédures, admet deux variables : un pointeur sur la famille (radio) et le nombre d'item de la famille (t) afin de sortir même si rien n'a été choisi. Cette procédure renvoie soit l'item sélectionné, soit le suivant du dernier si rien n'est sélectionné.

    Pour la communication, j'ai aussi utilisé des entrées de type text, celles nommées DeltaT, DeltaP, T_DE, T_DO, T_H ou T_FG. Comme précédemment, j'ai aussi bien imposé des valeurs que lu les valeurs sélectionnées dans les mêmes procédures. Pour faire exécuter les calculs avec ou sans tirage (mes procédures javascript), j'ai utilisé les entrées de type button juste après mes tableaux. Ces entrées sont des boutons poussoirs sur lesquels on peut "appuyer". Finalement pour afficher le résultat, j'ai utilisé à la fin du fichier un TEXAREA afin d'afficher un texte : le texte de "message" à la fin de la procédure Calcul_pt. L'avantage de ce type par rapport à l'entrée text simple est qu'on impose la hauteur en plus de la largeur de l'affichage.

    Dans le fichier sur les emprunts, j'ai aussi utilisé des formes, mais pour les sorties, j'ai utilisé la fonction alert qui oblige le surfeur à cliquer pour continuer de naviguer. Je parle d'une autre sortie utilisée par ce fichier sous la rubrique tableau.

  3. Les "Switch" et "case"

    Dans le fichier Poids_Taille.html, j'ai aussi utilisé les fonctions switch, case et break afin de faciliter les tris en fonction de la valeur d'une famille. Ces fonctions évitent un enchevêtrement de if/else comme au début de la procédure Tire_pt. Le dernier point intéressant de cette procédure est le tirage aléatoire, première instruction de la procédure Tire_pt. Il se fait avec la fonction new date qui donne le nombre de millisecondes écoulées depuis le 1/1/1970. On travaille avec les restes successifs des divisions : ici deux fois par 200 au début, ceci donne un cycle en 200x200ms=40 000ms=40s. Attention, quand ce nombre devient trop grand, les tirages consécutifs se ressemblent trop! C'est pour cela que j'ai effectué un nouveau tirage après les if/else en espérant que le temps d'exécution jusque là ne sera pas toujours le même (taches de fond...). J'avais vu que le résultat de new date était au 100ème près alors que je crois voir que chez moi il est au millième, j'aimerai avoir votre avis. Merci.

  4. Les "tableaux"

    Dans deux fichiers, j'ai fait des tableaux avec des procédures en Javascript. Le premier est le fichier sur les tirages de dès. J'ai fait une procédure qui fait un tableau avec des spécifications particulières afin de diminuer la taille du fichier. Le seul but de cette manipulation était d'avoir un fichier 10 fois plus petit que le fichier HTML pondu par Word de Micro$oft. Diminuer la taille d'un fichier de Micro$oft par 2 ou 3 n'est pas un exploit, mais par 10, si ! Dans ce fichier vous pourrez aussi voir des tirages de dès quand vous passez sur différents titres.

    Le second fichier est le fichier où je parle des prêts et des emprunts. Dans ce fichier, je fais le tableau d'amortissement dans un nouveau fichier que je fais construire par la procédure amor(forme).

  5. Les fonctions mathématiques

    Dans le fichier sur les emprunts, j'ai aussi utilisé des fonctions mathématiques pour résoudre les différents problèmes. J'ai aussi du faire un programme de résolution d'équation pour trouver le taux mensuel.

    L'écriture de ces fonctions demande la présence d'un Math. devant. Mais on peut l'éliminer d'un paquet d'instruction si elles sont dans un système With (Math) {...}. Je me suis servi de cette astuce dans ma page de tracé de fonction où vous pouvez voir la liste des fonctions diponibles.

  6. Les passages de paramètres

    Dans un fichier, la frame qui est à la gauche de votre écran, je fais un passage de paramètre d'une frame à l'autre : la couleur des caractères. Il faut bien connaître sa page avec ses frames : si vous cliquez sur le lien du début de ce paragraphe, le changement de couleur demandé dans la nouvelle page (la même que la frame de gauche) ne se fera avec le même code que sur la partie droite de l'écran. Vous pouvez encore faire des essais avec ce lien : lien d'essai. Cette méthode permet aussi quand on a un affichage qui gardera toujours une frame (comme un logo), de garder des constantes dans la frame qui ne bougera pas : dès qu'une page (un fichier) html s'ouvre, elle (il) réinitialise tous ces paramètres, elle (il) peut aller les chercher sur une frame qui n'a pas changé.

    Une autre méthode, qui cette fois ne demande pas la présence de frame est l'utilisation des cookies. Vous verrez un exemple dans le fichier index de mon site. Ce passage de paramètre permet de compter votre nombre de passage.

    Avec la seconde méthode, vous retrouvez vos paramètres d'un passage à l'autre sur le fichier, même si vous êtes allés faire d'autres visites entre temps. Quant à la première méthode, c'est tout à fait différent : elle permet de passer les paramètres d'un fichier à l'autre, mais on les retrouve initialisés à chaque visite.

    On peut aussi passer des paramètres en appelant un fichier html ou php en l'appelant de la façon suivante : "fichier.html?paramètres", les paramètres sont reçus dans location.search. Vous voir ceci dans mes fichiers : sur chez et sur Multimania. La fonction slice dans location.search.slice(1) sert à enlever le "?" qui est reçu en début de chaine par le fichier valide message (Attention, le bouton "Le message a été envoyé" renvoie 2 pages plus tôt dans l'historique!).

  7. La barre de statut

    Dans le fichier une visite guidée, vous trouverez des scrooling (déroulement) dans la barre de statut. Comme dans beaucoup d'autres fichiers, il y a un déroulement qui s'amorce au démarrage, mais en plus, il y en a d'autres qui prennent la relève suivant où est la souris sur la carte. Ces déroulements n'ont lieu qu'une fois pour plusieurs raisons. Tout d'abord, ça permet une meilleure lisibilité et si on les fait se reboucler sur eux mêmes, on risque de saturer le buffer et de planter le système (même s'il n'est pas Micro$oft)!

    Le programe qui fait le défilement est le suivant : deroulement.js

  8. Le son

    Lancer le son une fois :

    Dans le fichier des.html

  9. La souris

    Dans mon index je repère la position de la souris pour lui faire une queue en utilisant le DHTML.

  10. changement de fenêtre après l'envoi d'un courrier.

    Comme j'avait utilisé Chez.com pour ma boite aux lettres, j'avais utilisé une astuce pour que vous reveniez à cette page ensuite, ce quelque soit votre site de départ : free, multimania, libertysurf ou chez. La méthode d'envoi implique d'aller dans un fichier fixe : elle signale que le message a été envoyé et cette page ne contient qu'un bouton qui renvoie deux pages plus tôt dans l'historique. Ce bouton ne marchera pas si la première page était la page message.html.

    Je crois que le plus important est de regarder comment votre hébergeur vous conseille de faire : la méthode à utiliser est propre à l'hébergeur !

  11. Barre de défilement

    Dans ma présentation, j'ai mis une barre de défilement comme celle qui est à droite de la fenêtre de votre navigateur. Pour la mettre en place, j'ai utilisé des éléments de DHTML : chaque élément doit être placé à une place précise et en plus le curseur bouge...

    La difficulté de cette manipulation est la gestion de la souris, j'ai du mettre des onMouseClick, onMouseOut et des onMouseDown pour gérer au mieux. Pour le moment, ça marche, mais j'aimerai faire encore mieux...

  12. Mise en page

    Dans la feuille de présentation du département GEii de l'IUTB, je place mes images en fonction de la taille de l'écran. La taille de l'image de fond dépend même de celle de l'écran. Là encore, pour Netscape, il y a plus de possibilités qu'avec IE! Avec IE, je ne peux qu'avoir la largeur screen.width ou la hauteur screen.Height de l'écran alors qu'avec netscape j'ai celles de la fenêtre : window.innerWidth et window.outerHeight. Comparer le lien avec IE ou Mozilla (netscape) !

    Vous pouvez aussi modifier les polices de caractères pour toute une page avec les feuilles de style.

  13. Date de la page

    Vous pouvez afficher la date de la dernière mise à jour de vos fichiers (en fait date du téléchargement) avec la procédure suivante : date.js. Je m'en suis servi par exemple dans le fichier de Présentation.

  14. Suis-je ne intranet?