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 :

Problème d'enchainement de fichiers dans iFrame


Sujet :

JavaScript

  1. #1
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut Problème d'enchainement de fichiers dans iFrame
    Bonjour,
    Je me suis mis à JS depuis une semaine et à PHP depuis 15 jours...
    Je voudrais réaliser un module d'affichage dynamique grâce à un iframe qui diffuserait plusieurs fichiers à la suite. Le problème est que l'iframe ne diffuse qu'un seul des 2 fichiers...
    J'ai presque réussi, mais là je bloque... je ne trouve pas l'erreur...
    Quelqu'un peut m'aider?!
    Voici le code :
    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
     
     
    <html>
     
    <head><title>Affichage dynamique</title></head>
    <META HTTP-EQUIV=REFRESH CONTENT="28">
    <script language="JavaScript1.2">
     
    var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
    var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
     
    var iframeprops='width=100% height=100% marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"'
     
    var compteur=1;
    var maxi=2;
     
    var randomcontent=new Array(maxi); randomcontent[1]="fichier1.html";randomcontent[2]="fichier2.html";
     
    if (ie||dom)
    document.write('<iframe id="dynstuff" src="" '+iframeprops+'></iframe>')
     
    function next() { 
    var iframeobj=document.getElementById ? document.getElementById("dynstuff") : document.all.dynstuff
    if (compteur == maxi) 
    	{ compteur = 1; } 
    	else { compteur++; }
    iframeobj.src=randomcontent[compteur];
    }
     
    window.onload=next;
     
    </script>
    <body></body>
    </html>
    Si quelqu'un peut me sortir de là... c'est avec joie que je saisirai la main qui m'est tendue !

    Merci !

    PS : Les données telles que le délai de rafraichissement ou la création des fichiers HTML à diffuser sont issues d'un script PHP qui fonctionne correctement.

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    onload ne s'exécute qu'une fois : un changement...

  3. #3
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Merci Fremy,
    cependant je recharge la page à un intervale défini, donc mon onload est censé être repris en compte, non?

    En fait pour être plus précis, j'utilise les fichiers html pour inclure des swf d'une durée qui est déterminée. Le problème est que je souhaiterais diffuser ces fichiers dans un ordre précis.
    J'ai trouvé un script qui fonctionne, mais les fichiers sont affichés aléatoirement... voici le code.
    Si ça pouvait se modifier un poil pour faire ce que je veux... ce serait cool !

    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
    <script language="JavaScript1.2">
     
    var ie=document.all&&navigator.userAgent.indexOf("Opera")==-1
    var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1
     
    var iframeprops='width=100% height=100% marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"'
     
    var randomcontent=new Array(); randomcontent[0]="fichier1.html";randomcontent[1]="fichier2.html";
     
    if (ie||dom)
    document.write('<iframe id="dynstuff" src="" '+iframeprops+'></iframe>')
     
    function random_iframe(){
    if (ie||dom){
    var iframeobj=document.getElementById? document.getElementById("dynstuff") : document.all.dynstuff
    iframeobj.src=randomcontent[Math.floor(Math.random()*randomcontent.length)]
    }
    }
     
    window.onload=random_iframe
     
    </script>
    Comme vous pouvez le voir, je m'en suis déjà largement inspiré...

  4. #4
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut J'ai trouvé une autre méthode
    Finalement, j'ai trouvé une autre méthode...
    Ca peut intéresser d'autres personnes...

    Je crée un iframe dans un fichier html avec comme source le premier fichier de la suite que je veux afficher (fichier1.html) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <html>
     
    <head><title>Affichage dynamique</title></head>
    <body>
    <iframe id="dyn" src="./fichier1.html" width=100% height=100% marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no">
    </body>
    </html>
    Ensuite, de manière dynamique, je génère les fichiers fichier1.html, fichier2.html..etc dans un dossier.
    Lors de leur création à partir de PHP et MySQL, j'inscris le tag suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META HTTP-EQUIV=REFRESH CONTENT="14;URL=fichier2.html"/>
    où le CONTENT="14; est généré comme étant la durée du fichier à diffuser, et URL:fichier2.html"/> le fichier suivant (fichier1+1.html).

    Voilà !! C'était pas si compliqué finalement !

    PS : l'iframe ne sert pas à grand chose dans ce cas, mais il me permet de cacher l'adresse des pages diffusées...

  5. #5
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut qq excuses
    donc finalement, quelques plates excuses car ce post n'a plus rien à faire dans le forum javascript...
    Désolé

    Gamin

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

Discussions similaires

  1. Problème de sauvegarde de fichier dans jar
    Par shinkansen dans le forum Général Java
    Réponses: 9
    Dernier message: 25/05/2009, 16h05
  2. Réponses: 9
    Dernier message: 20/02/2009, 17h51
  3. Réponses: 4
    Dernier message: 27/05/2007, 11h11
  4. problème de joindre des fichiers dans internet explorer
    Par passion_info dans le forum Windows XP
    Réponses: 2
    Dernier message: 07/10/2006, 13h59
  5. [Upload] Problème pour uploader un fichier dans mon code
    Par Peuplarchiste dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 09h48

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