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 :

Exécuter un script JS avant toute autre chose


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Par défaut Exécuter un script JS avant toute autre chose
    Bonjour.

    Dans le cadre de la création d'un site internet, j'utilise un scipt JS qui détermine quel est la taille de l'ecran de l'utilisateur, et ainsi, choisis la bonne taille de background du body en fonction. Le problème, très curieux d'ailleurs, c'est que sur ma page j'ai un SWF assez gros, et tant que le SWF n'est pas totalement chargé, le script JS ne s'exécute pas et je me retrouve avec un background tout blanc en attendant que le SWF soit chargé.

    Comment puis-je faire pour que le script JS s'exécute AVANT le chargement du SWF afin d'avoir au moins un background agréable pendant l'attente?

    Merci pour vos suggestions.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour et bienvenu sur Developpez.com

    tu peux n'ajouter ton SWF (via le DOM) qu'après le chargement du reste de la page et l'exécution de ton script actuel.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="ScriptActuel();AjouteSWF();">
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Par défaut merci
    Salut!
    Alors d'abord merci pour ton accueil, et merci de ta réponse rapide c'est gentil.
    Ensuite, je m'excuse mais je suis un gros novice alors pour être sur de faire correctement, voici ma page html:

    Code : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <head>
    <title>TITRE</title>
    <link href="css/intro.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/swfobject.js"></script>
     
    <script type="text/javascript" src="js/background.js"></script> <!-- le code qui choisit mon background -->
     
     
    </head>
     
     
    <body>
    <div id="conteneur">
    	<div id="intro">
     
     
     
    		<div id="flashcontent"></div> <!-- le SWF en question -->
     
     
    <script type="text/javascript">
    	var randomnumber=Math.floor(Math.random()*10000);
       var so = new SWFObject("intro.swf?"+randomnumber, "mymovie", "600", "500", "8", "#ffffff");
       so.addParam('wmode', 'transparent','false');
       so.write("flashcontent");
    </script>
     
     
    	</div>	
    </div>	
     
    </body>			
    </html>
    Comment puis-je adapter ta ligne de code à ceci?

    Merci encore

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par thepopol777 Voir le message
    je suis un gros novice alors pour être sur de faire correctement,
    Pas nécessaire de faire correctement du 1° coup.
    Pour progresser mieux vaut essayer.
    Citation Envoyé par Lao-Tseu
    L'échec est le fondement de la réussite


    Si je le fais à ta place (en admettant que j'ai tous les éléments, ce qui n'est pas le cas pour l'instant), tu resteras "novice"

    Bref, essaye, montre-nous le résultat et on regardera où ça bloque ...

    EDIT : pour l'instant tu n'as pas de "ScriptActuel();" puisque celui-ci est appelé directement dans la page (ton SWF). Par contre, tu dois pouvoir en faire une fonction et l'appeler avec cette méthode.

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Par défaut alors....
    Ok dans ce cas, n'ayaons pas peur du ridicule

    Code : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    <head>
    <title>TITRE</title>
    <link href="css/intro.css" rel="stylesheet" type="text/css" />
    <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
    <script type="text/javascript" src="js/swfobject.js"></script>
     
    <script type="text/javascript"> 
     
     var background = function ()
    {
        var res = [ 
                {width:800,  height:600, src:"images/800600.jpg"},
                {width:1024, height:768, src:"images/1024768.jpg"},
                {width:1280, height:800, src:"images/1280800.jpg"},
    			{width:1920, height:1200, src:"images/19201200.jpg"}];
     
     
        var img = res[0],
        width = screen.width || (document.body && document.body.clientWidth) || 1920; 
     
     
        for (var i=0; i < res.length;i++) {
            if (img.width <= res[i].width && res[i].width <= width) { 
                img = res[i];
            }
            else {
     
                break;
            }
        }
     
        if (document.body) {
            document.body.style.backgroundImage = "url('"+ img.src +"')";
        }
    }
    </script>
     
    <script type="text/javascript"> 
     
     var loadswf = function ()
    {
        	var randomnumber=Math.floor(Math.random()*10000);
       var so = new SWFObject("intro.swf?"+randomnumber, "mymovie", "600", "500", "8", "#ffffff");
       so.addParam('wmode', 'transparent','false');
       so.write("flashcontent");
     
    }
    </script>
     
    </head>
     
     
    <body onload="background();loadswf();">
     
    <div id="conteneur">
    	<div id="intro">
     
     
     
    		<div id="flashcontent"></div> <!-- le SWF en question -->
     
     
    	</div>	
    </div>	
     
    </body>			
    </html>
    J'ai directement inclus le background.js pour que tu le voies.
    Je brûle?

    Je voudrais aussi comprendre comment cela fonctionne exactement, est-ce que ce que je mets dans "body onload" se charge a la queue-leu-leu? Genre d'abord le script puis le swf?

    Merci de ton aide

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        var res = [ 
                {width:800,  height:600, src:"images/800600.jpg"},
                {width:1024, height:768, src:"images/1024768.jpg"},
                {width:1280, height:800, src:"images/1280800.jpg"},
    			{width:1920, height:1200, src:"images/19201200.jpg"}];
    et si ma resolution d'écran ne correspond pas à ce que tu as mis, je fais comment ?

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par thepopol777 Voir le message
    Je brûle?
    A toi de dire : ça donne quoi ?
    Une erreur ?
    Quelle ligne, quel message ?
    Citation Envoyé par thepopol777 Voir le message
    Je voudrais aussi comprendre comment cela fonctionne exactement, est-ce que ce que je mets dans "body onload" se charge a la queue-leu-leu? Genre d'abord le script puis le swf?
    Oui, c'est ça. D'où ma proposition

    EDIT : par rapport à la remarque de Gatsu, tu devrais prévoir un background pour le cas "else"

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exécuter un script perl depuis un autre programme perl
    Par ngouagme dans le forum Langage
    Réponses: 20
    Dernier message: 06/07/2010, 15h56
  2. Réponses: 5
    Dernier message: 25/03/2009, 10h49
  3. Exécuter un script cgi via un autre cgi
    Par Olivier Regnier dans le forum Web
    Réponses: 4
    Dernier message: 05/09/2008, 07h47
  4. Empêcher l'exécution de script (php, python ou autre)
    Par okparanoid dans le forum Apache
    Réponses: 8
    Dernier message: 29/07/2008, 21h16
  5. Réponses: 5
    Dernier message: 23/12/2007, 15h12

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