Adresse IP et date du jour en javascript
Par
, en novembre 2020Dans cet article nous allons voir tout d’abord le but du projet que nous allons vous présenter. Puis, nous allons voir les différents codes de javascript que nous avons inséré dans la page HTML et leurs buts. Pour finir, nous allons vous expliquer les difficultés rencontrées durant la conception de cette page et les solutions que nous avons mis en œuvre pour résoudre ces derniers.
Ce projet a été réalisé par des élèves en spécialité NSI du Lycée Louis Pasteur. Ils sont également les auteurs de ce compte rendu. Pour en savoir plus : Les projets en spécialité NSI
Le but du projet
Ce projet nous a été proposé par nos professeurs.
Le But : Faire de l’insertion de javascript dans une page HTML.
Différentes consignes nous avait été énoncées comme par exemple insérer un module, nous le verrons par la suite, mais aussi un menu et un ou plusieurs codes en javascript.
Au bout de ce projet nous devions donc écrire l’article que vous lisez en ce moment même.
Maintenant que nous vous avons exposé le but de ce projet nous allons donc pouvoir commencer à parler des différents codes qui sont présent dans la page HTML.
Les différents code de la page
La page est constitué d’un menu qui contient les différentes informations que donnent les codes que nous développerons ensuite. Le menu est généré par 3 lignes au début du code HTML et par 3 lignes qui se situent à chaque début de code, juste avant les codes javascript.
Les différentes lignes sont affichées ci-dessous :
ci dessus sont affichées les lignes de codes qui permettent de créer le menu.
À chaque début de code intégré dans le code de la page HTML nous avons des lignes comme celles-ci :
qui permettent d’afficher l’information relatif à cette ligne lorsque l’on sélectionne une partie du menu.
Voici le résultat :
Le premier code dont nous allons parler est le module que nos enseignants nous ont imposé d’insérer. Ce module permettra, dans le futur, de relier les différentes pages des différents élèves.
- <script src="https://package.nsi.xyz/api/"></script>
- <nsi-xyz add="menu" ref="0NSI 2020"></nsi-xyz>
La première ligne permet d’exporter un script externe tandis que la seconde permet d’insérer le menu qui a été importer avec la ligne précédente
Au final, on obtient un menu dépliant qui se situe en haut à droite de la page HTML et une fois déplié on obtient ceci :
Maintenant nous allons parler des trois codes javascripts que nous avons insérés dans la page.
Le premier code est un code permettant de donner l’adresse IP de la personne qui ouvre la page.
Pour obtenir son adresse IP la personne qui a ouvert la page devra cliquer sur un "bouton" qui lancera le programme en javascript.
Le code est affiché ci dessous :
- cliquer ici pour avoir votre adresse ip</button>
- <p id="lastcheck"></p>
- <script type="text/javascript">
- var i = 0;
- var prev;
- var timer = null;
- function stop() {
- clearInterval(timer);
- }
- function start() {
- checkIP();
- clearInterval(timer);
- timer = setInterval(function() {
- checkIP();
- }, 5000);
- }
- function checkIP() {
- var text = "";
- $.get("https://api.ipify.org", function(data) {
- text =
- " L'adresse ip de votre ordinateur est : " + data;
- document.getElementById("lastcheck").innerHTML = text;
- if (data != prev) {
- document.getElementById("log").innerHTML += text;
- }
- prev = data;
- });
- }
- </script>
la partie du code :
- cliquer ici pour avoir votre adresse ip</button>
permet de créer un bouton qui lance le code.
tandis que la ligne :
- text =" L'adresse ip de votre ordinateur est : " + data
Permet elle de donnée par écrie l’adresse IP
Et on obtient donc au final :
le second code que nous avons inséré est un code permettant de donner la date. Contrairement au code précédent nous n’avons pas inséré de boutons car cela n’est pas nécessaire. Ce code est associé à un troisième que nous verrons ultérieurement.
Le code qui permet de donné la date à l’écrit est le suivant :
- <script type="text/javascript">
- var mois=new Array(13);
- mois[1]="Janvier";
- mois[2]="Février";
- mois[3]="Mars";
- mois[4]="Avril";
- mois[5]="Mai";
- mois[6]="Juin";
- mois[7]="Juillet";
- mois[8]="Août";
- mois[9]="Septembre";
- mois[10]="Octobre";
- mois[11]="Novembre";
- mois[12]="Décembre";
- var time=new Date();
- var month=mois[time.getMonth() + 1];
- var date=time.getDate();
- var year=time.getYear();
- if (year < 2000)
- year = year + 1900;
- document.write("Nous sommes le " +date + " ");
- document.write(month + " " + year);
- </script>
Ce code est relativement court comparé aux autres mais il permet de donner la date à laquelle on ouvre la page.
Et le dernier code est complémentaire du précédent car il fait afficher un calendrier pour se situer dans le mois.
Le code permettant cela est le suivant :
- <div id="Date" class="tabcontent">
- <br>
- <script type="text/javascript">
- <!--
- var d = new Date();
- var dm = d.getMonth() + 1;
- var dan = d.getYear();
- if(dan < 999) dan+=1900;
- calendrier(dm,dan);
- function calendrier(mois,an) {
- nom_mois = new Array
- ("Janvier","Février","Mars","Avril","Mai","Juin","Juillet",
- "Août","Septembre","Octobre","Novembre","Décembre");
- jour = new Array ("Lu","Ma","Me","Je","Ve","Sa","Di");
- var police_entete = "Verdana,Arial"; /* police entête de calendrier */
- var taille_pol_entete = 3; /* taille de police 1-7 entête de calendrier */
- var couleur_pol_entete = "#FFFF00"; /* couleur de police entête de calendrier */
- var arrplan_entete = "#000066"; /* couleur d'arrière plan entête de calendrier */
- var police_jours = "Verdana,Arial"; /* police affichage des jours */
- var taille_pol_jours = 3; /* taille de police 1-7 affichage des jours */
- var coul_pol_jours = "#000000"; /* couleur de police affichage des jours */
- var arrplan_jours = "#D0F0F0"; /* couleur d'arrière plan affichage des jours */
- var couleur_dim = "#E00000"; /* couleur de police pour dimanches */
- var couleur_cejour = "#FFFF00"; /* couleur d'arrière plan pour aujourd'hui */
- var maintenant = new Date();
- var ce_mois = maintenant.getMonth() + 1;
- var cette_annee = maintenant.getYear();
- if(cette_annee < 999) cette_annee+=1900;
- var ce_jour = maintenant.getDate();
- var temps = new Date(an,mois-1,1);
- var Start = temps.getDay();
- if(Start > 0) Start--;
- else Start = 6;
- var Stop = 31;
- if(mois==4 ||mois==6 || mois==9 || mois==11 ) --Stop;
- if(mois==2) {
- Stop = Stop - 3;
- if(an%4==0) Stop++;
- if(an%100==0) Stop--;
- if(an%400==0) Stop++;
- }
- document.write('<table border="3" cellpadding="1" cellspacing="1">');
- var entete_mois = nom_mois[mois-1] + " " + an; inscrit_entete(entete_mois,arrplan_entete,couleur_pol_entete,taille_pol_entete,police_entete);
- var nombre_jours = 1;
- for(var i=0;i<=5;i++) {
- document.write("<tr>");
- for(var j=0;j<=5;j++) {
- if((i==0)&&(j < Start)) inscrit_cellule(" ",arrplan_jours,coul_pol_jours,taille_pol_jours,police_jours);
- else {
- if(nombre_jours > Stop) inscrit_cellule(" ",arrplan_jours,coul_pol_jours,taille_pol_jours,police_jours);
- else {
- if((an==cette_annee)&&(mois==ce_mois)&&(nombre_jours==ce_jour)) inscrit_cellule(nombre_jours,couleur_cejour,coul_pol_jours,taille_pol_jours,police_jours);
- else inscrit_cellule(nombre_jours,arrplan_jours,coul_pol_jours,taille_pol_jours,police_jours);
- nombre_jours++;
- }
- }
- }
- if(nombre_jours > Stop) inscrit_cellule(" ",arrplan_jours,couleur_dim,taille_pol_jours,police_jours);
- else {
- if((an==cette_annee)&&(mois==ce_mois)&&(nombre_jours==ce_jour)) inscrit_cellule(nombre_jours,couleur_cejour,couleur_dim,taille_pol_jours,police_jours);
- else inscrit_cellule(nombre_jours,arrplan_jours,couleur_dim,taille_pol_jours,police_jours);
- nombre_jours++;
- }
- document.write("<\/tr>");
- }
- document.write("<\/table>");
- }
- function inscrit_entete(titre_mois,couleurAP,couleurpolice,taillepolice,police) {
- document.write("<tr>");
- document.write('<td align="center" colspan="7" valign="middle" bgcolor="'+couleurAP+'">');
- document.write('<font size="'+taillepolice+'" color="'+couleurpolice+'" face="'+police+'"><b>');
- document.write(titre_mois);
- document.write("<\/b><\/font><\/td><\/tr>");
- document.write("<tr>");
- for(var i=0;i<=6;i++)
- inscrit_cellule(jour[i],couleurAP,couleurpolice,taillepolice,police);
- document.write("<\/tr>");
- }
- function inscrit_cellule(contenu,couleurAP,couleurpolice,taillepolice,police) {
- document.write('<td align="center" valign="middle" bgcolor="'+couleurAP+'">');
- document.write('<font size="'+taillepolice+'" color="'+couleurpolice+'" face="'+police+'"><b>');
- document.write(contenu);
- document.write("<\/b><\/font><\/td>");
- }
- //-->
- </script>
Grâce à ce code on obtient ceci :
Cependant si vous copier ces codes vous n’obtiendrez malheureusement pas le même résultat car il manque le code CSS qui permet de mettre en "forme" et en "couleur" la page.
Donc en premier lieu nous allons voir la mise en page en générale puis nous verrons partie par partie les différents code qui permettent de faire la même mise en page finale.
- <style>
- body {margin:0;}
- body {
- margin: 15;
- border : ;
- background-color: #black;
- font-family: 'Gadugi';
- }
- h3 {
- color : #EFEFEF;
- text-align : center;
- font-family : ;
- font-weight : bold;
- font-size : 20px;
- font-family: 'Gadugi';
- }
- h2 {
- font-family : ;
- color :#EFEFEF;
- text-align : center;
- font-size : 30px;
- font-family: 'Gadugi';
Cette partie du code permet de faire la mise en page avec la couleur de fond, de définir la police des texte qui auront la balise h2 et h3.
Ensuite nous avons le code qui permet de modifier le "bouton" pour le programme de l’adresse IP :
- .bouton {
- padding: 10px 10px;
- background: #CCCCCC;
- color: #39304A;
- border-radius: 30px;
- }
Et enfin voici le code CSS qui permet de faire la mise en page du menu, qui contient toutes les informations, que donnent les codes que nous avons vus précédemment.
Le code est ci-dessous :
- /* Style the tab */
- .tab {
- float: left;
- border: 1px solid #839788;
- background-color: #BDBBB6;
- width: 30%;
- height: 300px;
- }
- .tab button {
- display: block;
- background-color: inherit;
- color: black;
- padding: 22px 16px;
- width: 100%;
- border: none;
- outline: none;
- text-align: left;
- cursor: pointer;
- font-size: 17px;
- }
- .tab button:hover {
- background-color: #ddd;
- }
- .tab button.active {
- background-color: #ccc;
- }
- .tabcontent {
- float: left;
- padding: 0px 12px;
- border: 1px solid #ccc;
- width: 70%;
- border-left: none;
- height: 300px;
- display: none;
- }
- .clearfix::after {
- content: "";
- clear: both;
- display: table;
- }
Les lignes de codes ci-dessus permettent la mise page du tableau qui contient les informations données par les codes en javascript.
Nous en avons donc fini avec les différentes lignes de codes qui composent notre page HTML
Les problèmes rencontrés et leurs solutions
Durant la conception de notre page HTML nous avons rencontrés très peu de problèmes concernant les codes. Cependant nous avons eux quelques fois le menu, permettant de faire le lien entre les futures pages des élèves, qui ne s’affichait plus. Le problème était tout simplement que le code n’était pas bien positionné, il se situait dans le partie CSS alors qu’il fallait tout simplement le mettre dans la partie "head".
Le plus gros problème a été de réussir à trouver des codes qui fonctionnaient correctement et qui n’étaient pas trop complexe ni trop simples.
Les différentes modifications apportées aux codes
Durant la création de la page nous avons très légèrement modifié certains codes. Il y avait des éléments qui paraissaient inutiles.
Par exemple :
- Le code qui donne l’adresse IP avait une autre partie de code qui permettait de se souvenir de l’adresse IP du précédent utilisateur du programme. Cela ne faisait que mettre la même adresse, ce qui paraissait un peut inutile, nous l’avons donc supprimé.
- Nous avons aussi modifié la couleur et la forme du bouton qui permet de lancer le code qui donnait l’adresse IP.
Conclusion et code final
Voici donc ce compte rendu terminé j’espère que nous vous aurons aidé à comprendre les différentes lignes des codes que nous vous avons proposé.
Vous trouverez donc ci-joint le code final, entièrement complété qui vous permettra d’avoir la même page que la mienne.
Merci de votre lecture.