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

jQuery Discussion :

Attendre le chargement complet d'une iFrame


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut [Résolu] Attendre le chargement complet d'une iFrame
    Bonsoir,

    j'ai une iFrame que je charge dynamiquement, ensuite j'aimerais la redimensionner mais je n'y arrive pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dyn = $('#dynamicWindow');
     
    html = '<iframe id="dynamicFrame" name="dynamicFrame" src="' + url + '" width="960px" height="3000px" scrolling="auto" frameborder="0"></iframe>';
     
    dyn.html(html);
    J'aimerais déjà récupérer la hauteur du contenu de l'iFrame, mais une fois sur deux le contenu n'est pas complètement chargé et du coup mon alert() ne s'affiche pas.

    Je suis perdu je ne sais plus ou chercher...

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
    	$(function(){
    		$('#affiche').html('<iframe id="dynamicFrame" src="Provisoire/efface12.html" width="600" height="500" scrolling="auto" frameborder="0"></iframe>');						
    	});
    	$(window).load(function(){
    		$("#dynamicFrame").contents().find("#conteneur p").css({color:"red"});
    	});		
    </script>
    Le point important, c'est que l'on accède à l'iframe par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#dynamicFrame").contents().find(...)
    après le chargement de window.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Bonjour,

    rien n'a faire je n'y arrive pas....

    Je reprend en plus complet.

    J'utilise une fonction qui charge dynamiquement une iFrame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function loadWindow(url)
    {
     
    	$('#dynamicWindow').html('<iframe id="dynamicFrame" src="' + url + '" width="600" height="500" scrolling="auto" frameborder="0"></iframe>');						
     
    	$(window).load(function(){
    		alert('coucou');
    	});
     
    }
    Mon alert ne s'affiche jamais :s

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Normal ! $(window).load() ne doit pas être dans une fonction !

    Exemple :
    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
    69
    <!doctype html>
    <html lang="fr">
    <head>
    	<meta charset="utf-8"/>
        <!-- <base href="http://danielhagnoul.developpez.com/"> -->
        <base href="file:///C:/Documents%20and%20Settings/user/Mes%20Documents/KOMODO%20SPACE/DVJH/"/>
    	<meta name="Author" content="Daniel Hagnoul" />
    	<title>Page type</title>
    	<style>
    		body {
    			background-color:#dcdcdc;
    			color:#000000;
    			font-family:sans-serif;
    			font-size:medium;
    			font-style:normal;
    			font-weight:normal;
    			line-height:normal;
    			letter-spacing:normal;
    		}
    		h1,h2,h3,h4,h5 {
    			font-family:serif;
    		}
    		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {
    			margin:0px;
    			padding:0px;
    		}
    		p {
    			padding:6px;
    		}
    		ul,ol,dl {
    			list-style:none;
    			padding-left:6px;
    			padding-top:6px;
    		}
    		li {
    			padding-bottom:6px;
    		}
    		div#conteneur {
    			width:95%;
    			margin:12px auto;
    			padding:6px;
    			background-color:#FFFFFF;
    			color:#000000;
    			border:1px solid #666666;
    			font-size:0.8em;
    		}
    		div#affiche {
    			margin:12px;
    			border:1px solid #999999;
    		}
     
    		/* TEST */
    	</style>
    	<script charset="utf-8" src="lib/jquery-1.4a2.min.js"></script>
    	<script>
    		$(document).ready(function(){
    			$('#affiche').html('<iframe id="dynamicFrame" src="Provisoire/efface12.html" width="600" height="500" scrolling="auto" frameborder="0"></iframe>');						
    		});
    		$(window).load(function(){
    			$("#dynamicFrame").contents().find("#conteneur p").css({color:"red"});
    		});		
    	</script>	
    </head>
    <body>
    	<div id="conteneur">
    		<div id="affiche"></div>
    	</div>
    </body>  
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    je n'arrive à rien !!

    Je n'arrive pas à faire marcher mon code, donc je suis parti du tien, mais je n'arrive pas à récupérer la taille du contenu de mon iFrame.

    Est-ce bien comme ça qu'il faut faire ?

    le alert() me renvoi null

    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
    <html>
    <head>
    	<title>Page type</title>
    	<script src="./lib/jquery.js" type="text/javascript"></script>
    	<script>
    		$(function(){
    			$('#affiche').html('<iframe id="dynamicFrame" src="../forum/index.php" width="600px" height="500px" scrolling="auto" frameborder="0"></iframe>');	
    		});
     
    		$(window).load(function(){
    			alert($("#dynamicFrame").contents().find('body').css('height'));
    		});
    	</script>	
    </head>
    <body>
    	<div id="conteneur">
    		<div id="affiche"></div>
    	</div>
    </body>  
    </html>

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    La taille de l'iframe ? Elle est fixée au départ ! Pour obtenir les tailles internes d'un élément, le fait que l'on manipule un élément de l'iframe n'y change rien, il suffit d'appliquer la documentation jQuery, exemple pour body :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(window).load(function(){
    	var obj = $("#dynamicFrame").contents().find("body");
     
    	var height = obj.innerHeight();
    	var width = obj.innerWidth();
     
    	alert("body innerHeight = " + height + "\n body innerWidth = " + width);
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

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

Discussions similaires

  1. image d'attente avant chargement complet d'une page
    Par kamclasse dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 31/01/2009, 14h00
  2. chargement de fonction, onload ? attendre le chargement complet
    Par italiasky dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 11/12/2008, 18h32
  3. [XUL/JS] Tester le chargement complet d'une page avec frames
    Par Mr Pink Eyes dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 06/05/2008, 12h25
  4. [Prototype] Patienter durant chargement complet d'une image (AJAX)
    Par Sebastos dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 24/01/2008, 13h26
  5. [ole] attendre le chargement complet du composant
    Par dvarrel dans le forum Delphi
    Réponses: 5
    Dernier message: 09/01/2007, 18h26

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