IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Variable générique sur fonction ?


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut Variable générique sur fonction ?
    Salutations,

    Autant j'arrive à debugger du PHP et du CSS un peu, autant je n'ai jamais compris le JS correctement.

    J'ai le code suivant qui reload des imgs toutes les secondes et qui marche très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript" async>
    	function ReloadImage(){
    		var now=new Date();
    		document.getElementById('CamIP1').src='http://monurl1' + now; // Camera 1
    		document.getElementById('CamIP2').src='http://monurl2' + now; // Camera 2
    		document.getElementById('CamIP3').src='monurl3' + now; // Camera 3
    	}
    	setInterval(ReloadImage,1000); // 1000=1 Secondes
    </script>
    Autant, je n'ai jamais réussi à faire fonctionner cette partie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		document.getElementById(id).onload = function() {
    			// Image ready
    		};
    		document.getElementById(id).onerror = function () {
    			// Chargement image rate
    			document.getElementById(id).src='Cam-Wait.jpg';
    		};
    Il n'y à pas de moyen en JS de faire en sorte qu'un controle d'erreur fonctionne pour TOUS les id ?

    Merci de votre aide ...

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bonjour,

    Il faudrait un contexte...
    Mais quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    document.querySelectorAll("img").forEach(im=>{
       im.onload=console.log(im.src + " est valide.");
       im.onerror=()=>{throw new Error("Adresse inconnue")}
    })
    (Le gestionnaire error est dur à manier.)

  3. #3
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Merci,

    cela SEMBLE fonctionner, mais comment afficher une image (Cam-Wait.jpg) en cas d'erreur de chargement des img ?

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Encore une fois, sans contexte, pas de solution précise.

  5. #5
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Tout est déjà donné,
    ce script ré-actualise juste des imgs toutes les secondes.

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!-- Camera 1 !-->
    <img src="Cam-Wait.jpg" width="320" height="240" id="CamIP1" class="cam" alt="Site de depot Parisien en direct !" title="Site de depot Parisien en direct !" />
     
    <!-- Camera 2 !-->
    <img src="Cam-Wait.jpg" id="CamIP2" width="320" height="240" class="cam" alt="Atelier Parisien en direct !" title="Atelier Parisien en direct !" />
     
    <br />
     
    (...)
     
    <!-- Data cameras !-->
    <script type="text/javascript" async>
            function ReloadImage(){
                    var now=new Date();
                    document.getElementById('CamIP1').src='URL-1' + now; // Camera 1
                    document.getElementById('CamIP2').src='URL-2' + now; // Camera 2
     
            setInterval(ReloadImage,1000); // En millisecondes : 1000 = 1 Seconde
    </script>

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    D'après ce que tu donnes, je dirais:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // tableau des images non chargées
    const t=[];
    // demande d'actualisation
    setInterval(()=>{
    // pour chaque balise image
    	document.querySelectorAll(".cam").forEach((im,i)=>{
    // si le tableau ne contient pas l'image
    		if(!t.includes(im)){
    // on lui donne n'adresse correspondant à son indice+1 et on l'actualise avec Date.now()
    			im.src="urlimages"+(i+1)+".jpg?"+Date.now();
     		};
    // si l'image n'existe pas, on l'ajoute au tableau et on demande l'image de rechange
    		im.onerror=()=>{t.push(im);im.src="Cam-Wait.jpg";}
    	})
    },1000)

    Mais je ne suis sûr de rien...

Discussions similaires

  1. Réponses: 9
    Dernier message: 07/02/2012, 10h16
  2. Réponses: 4
    Dernier message: 15/07/2011, 13h04
  3. Réponses: 3
    Dernier message: 16/03/2011, 11h11
  4. [Prototype] Passage de variable sur fonction new Ajax.Request
    Par Overstone dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 31/08/2007, 11h36
  5. Réponses: 2
    Dernier message: 18/06/2007, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo