Pages

Environnement

Environnement

Navigateurs

Mozilla
Chrome
Internet Explorer
Opera
Les  navigateurs WEB nous sont aujourd’hui familiers.
Découvrons ensemble des fonctionnalités moins connues et apprenons à maîtriser leurs boîtes à outils de développement.
les Navigateurs




























































++









La miage d'Evry était présente à la conférence fossa. Une matinée était consacrée à l'enseignement du libre. Evry est Mondialement reconnue comme leader de l'enseignement des technologie de pointe. Malgré notre partenariat priviégié avec Mozilla, nous allons nous focaliser sur le navigateur Chrome.

Personnaliser et Contrôler


Nous allons découvrir quelques fonctionnalités de Chrome (Google).

La barre d’adresse

Lancez le navigateur Chrome. Dans la barre d’adresse tapez successivement

  • chrome://version/
  • chrome://settings/
  • chrome://settings/autofill
  • chrome://settings/createProfile
  • file:///C:/Users/



Il est inutile de connaitre ces codes, nous disposons  d’un icône en haut à droite pour Personnaliser et Contrôler Chrome.


Cliquer sur l’icône et aller dans Paramêtres. Nous obtenons les mêmes résultats que la commande chrome://settings/.

L’aide

Lancer l’aide en ligne ->aide pour trouver comment : Définir votre page d'accueil


Avez vous lu la remarque en bas de page de l’aide “Vous utilisez un appareil Google Chrome au travail ou dans un établissement scolaire ? Votre administrateur réseau a peut-être configuré vos paramètres de page d'accueil à votre place. Si tel est le cas, vous ne pourrez pas les modifier à cet endroit. En savoir plus sur l'utilisation d'un appareil Chrome géré.”

Option avancée


Rechercher comment prendre en  compte un proxy.

Les extensions

Les extensions permettent d'ajouter de nouvelles fonctionnalités à un navigateur.
Tapez dans la barre d’adresse chrome://extensions/ ou rechercher dans  extensions.

Prenez le controle de Youtube en installant http://www.tubeenhancer.com/

Mot de passe


Pour eviter la saisie sistématique d’un mot de passe, les navigateurs proposent de les mémoriser.
Il est important de pouvoir effacer un mot de passe associé à un site.

Lancez le navigateur Chrome. Dans la barre d’adresse tapez successivement
  • chrome://settings/passwords








++






















































































++

























































































++ dev
phone


































Outils de développement

Tous les navigateurs possédent aujourd’hui de formidables outils de dévellopement.

Modification du DOM

A l’aide de code écrit en JavaScript on peut facilement modifier la structure d’une page WEB.

Nous allons nous amuser à remplacer le logo de google par notre photo !
Rendez vous sur la page de google et tapez F12 ou rechercher les outils de developpement

Dans la nouvelle fenêtre recherchez l’onglet console




Dans la console tapez le code suivant  :
  1. var newLogo=document.createElement('img');
  2. var oldLogo = document.getElementById("hplogo");
  3. oldLogo.parentNode.replaceChild(newLogo,oldLogo);

Ce code est écrit en Javascript, sa fonctionnalité peut se résumer ainsi
  1. Création d’une image
  2. Recherche du logo
  3. Mise de la source dans l’image
  4. remplacement du logo par l’image

Etude du réseau


Tapez l’adresse https://www.ibisc.univ-evry.fr/~dupont/. Dans la console, placez vous maintenant sur l’onglet NetWork, actualiser la page et observer le temps de chargement des images.


Web SQL


On ne sera pas surpris d’apprendre que le navigateur disposent d’une base de données

Inspection des éléments


Pour la suite nous allons utiliser le navigateur Mozilla.

La maîtrise du code HTML et CSS passe forcement par l’autoapprentissage. L’outil “inspecteur” facilite cette démarche. Cette partie est essentielle à la suite de votre formation.


Inspecter les codes pour
  • Connaître combien de balises <DIV> sont contenues dans le code.
  • Donner la taille du div id=”Gauche”
  • Changer sa couleur en rouge, mettre un taille de 70%, retirer la propriété float
  • Ajouter à div id=”droite” la propriété border: solid 5px;


Simuler la position hover


Aller dans la démo sur l’effet hover.

Inspectez la liste et à droite cliquez sur la partie jaune.

Ensuite, cocher hover pour simuler le comportement de la souris sur l’objet.

Debugger un programme


L’utilisation du débugger Javascript sera indispensable dans la suite du programme

Travail personnel

Extraire le code de la démo à l'aide de firebug.


Dernières inovations


Top site

 http://discover-devtools.codeschool.com/

Correction

Divers Code

Site
http://jsbin.com/jeremadiyo/1
http://jsbin.com/zevopi/3/edit

exercice 1 1
  • "Click sur div=1"
  • "Click sur div=1"

version corrigée
var ps = document.getElementsByTagName("div");  

for (var i = 0; i < ps.length; i++) {
     (function(x){
ps[x].addEventListener("click",
function() {
       console.log("Click sur div=" + x);        
   }, false);
        })(i);

}

exercice 1 2
object Window

exercice 1 3
"Nb de clics : NaN"

version corrigée

CompteurDeClics = function(id) {
   this.unElementHTML = document.getElementById(id);
   this.nb = 0;// Le nombre de clics

   var current = this;// Stocker en variable locale l'objet courant

   this.unElementHTML.onclick = function() {        
       current.nb++;// Utiliser cette variable
       console.log("Nb de clics sur le textarea : " + current.nb);
   }
}

new CompteurDeClics("button");

exercice 1 4
  • "cliq"
  • "cliq"
  • "cliq"
Il ne se passe rien, le paramêtre couleur est l’evenement

correction

myelement.onclick=(function (couleur) {
       return function () {
              console.log('cliq');
    this.style.color=couleur;
       };
}(couleur));


Menu (JS)

var sousMenus = document.getElementsByClassName("ssmenu");

for (i=0;i<sousMenus.length;i++){

sousMenus[i].style.display="none";
  sousMenus[i].parentElement.addEventListener("mouseover",
function(){this.firstElementChild.style.display="block";},false);
 
  sousMenus[i].parentElement.addEventListener("mouseout",
function(){this.firstElementChild.style.display="none";},false);
}

et autre version avec toggle voir cours !

var sousMenus = document.querySelectorAll("li ul");

for (i=0;i<sousMenus.length;i++){
sousMenus[i].classList.add('invisible');

sousMenus[i].parentElement
.addEventListener("click",
function(){this.firstElementChild
.classList
.toggle('invisible')},false);
}

Problème III



function cal(current) {
   var val = parseInt(current.value);
  if (val){

var subtotal = val * priceData[current.name];            

   var next=current.nextElementSibling;

  var soustot=next.children;

  soustot[0].innerHTML=subtotal;
 }
 else{
    current.style.background="#f58809";
 }
}

--- bonus
function calculateTotal() {
       var total = 0;
       var ssTot = document.querySelectorAll("span.subtotal span:not(#total)");

 
 for (var i=0; i<ssTot.length;i++){
    total +=parseInt(ssTot[i].textContent);
 }

 document.getElementById('total').innerHTML="$"+total;
      
   }

/* en jquery
$('span.subtotal span').not('#total').each(function(index, elem) {
           total += Number($(elem).text());
       })
       $('#total').text("$" + total);

   $(document).ready(function() {     
        //$('.latent').show();
       
       $('input').bind("change keyup", function() {  
         //reste à faire
            $(this).siblings("span").children("span").text(subtotal)
           calculateTotal();
       })       
   })
   
   function calculateTotal() {
       var total = 0;
       $('span.subtotal span').not('#total').each(function(index, elem) {
           total += Number($(elem).text());
       })
       $('#total').text("$" + total);
   }
*/



function mettreAuPluriel(singulier) {
 return singulier + "s";
}

var singuliers = ["pied", "main", "tête"];
var pluriels = singuliers.map(mettreAuPluriel);
// pluriels vaut ["pieds", "mains", "têtes"]
// singuliers ne change pas

Activer et tester ECMAScript 6


Pour tester les nouvelles fonctionnalités de ECMAScript 6, il faut activer une option dans chrome.

  1. tapez chrome://flags/#enable-javascript-harmony dans la barre d'adresse.
  2. Redémarrer (ou aller tout en bas)

Tester dans la console.

[1, 2, 3].map(n => n * 2); 
> [2,4,6]
Son équivalent en ECMAScript 5 est
[1, 2, 3].map(function(n) { return n * 2; }, this);

Prototype sur les objets du langage

Idée :

Nous pouvons utiliser la propriété prototype  pour proposer de nouvelles méthodes sur les objets du langage.

Illustration : 

String.prototype.repeat = function( num ){ return new Array( num + 1 ).join( this ); }

Exemple :

"-".repeat(100);






CodeSchool



http://discover-devtools.codeschool.com/

Préparation examen 2015

Considérons le code HTML suivant


<body>
 <div id="button">cliq</div>
</body>
</html>


Donner et commenter les code suivants :


1- var ps = document.getElementsByTagName("div");  

for (var i = 0; i < ps.length; i++) {
ps[i].addEventListener("click",
function() {
       console.log("Click sur div=" + i);        
   }, false);
}


2-  function afficheThis(){
alert(this);
};

var button = document.getElementById("button");
  button.onclick = function() {
afficheThis();
};

3- var myelement = document.getElementById("button");
couleur = 'red';

myelement.onclick=function(couleur){
console.log('cliq');
   this.style.color=couleur;
}

II) soit un tableau var singuliers = ["pied", "main", "tête"];
Ecrire une fonction qui crée un tableau pluriels = ["pieds", "mains", "têtes"]


III)
Donner le code HTML et CSS pour avoir un site avec un entête/piedpage et un bloc contenant un menu et un contenu


entête
menu
contenu
pied


IV)


var priceData = {
       camembert: 18,
       tomme: 19,
       morbier: 9
   }


var nodeListInput = document.getElementsByTagName('input');
for (var i = 0; i < nodeListInput.length; ++i) {
 console.log("input =" + i);
 var item = nodeListInput[i];
 
   func=(function(x){
       return function(){
           cal(x);
           // calculateTotal();
       }
   })(item);
 item.addEventListener('keyup', func, false);
}


function cal(current) {
A completer
}//permet de calculer chaque sous total