Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 12h02   #1
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
Par défaut redimension iframe cross sub domain

Bonjour,

J'ai fait un petit script pour redimensionner une iframe (pas de barres de scroll).
Ca fonctionne tres bien quand il n'y a qu'une seule iframe..
Mais la, j'aurais besoin d'en avoir 4 dans la meme page.. Et la solution de specifier un ID pour chaque n'est pas faisable..

Et je n'arrive pas a modifier le script pour cibler l'iframe correspondante..

Si qq'un a une idée..

dans la page html qui inclus les iframe :

Code :
1
2
3
4
5
<script language="javascript">
    document.domain = "mondomaine.fr";
</script>
 
<iframe  id="iframe" name="myframe" class="autoHeight" frameborder="0" scrolling="no" src="http://blabla.fr/frame/id/1757" width="730" ></iframe>
dans la frame appellée :

Code :
1
2
3
4
5
6
7
8
9
<script language="javascript">
    document.domain = "mondomaine.fr";
    $(window).load(function() {
        function setHeight() {
            parent.document.getElementById('iframe').height = $("html").outerHeight();
        }
        setHeight();
    });
</script>

Donc, la j'accede a l'iframe par son ID.. à partir d'elle meme.. y'a t-il des solutions pour acceder a l'iframe qui appelle la fonction, sans ID ? (habituellement "this").. mais la..
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 14h18   #2
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
Bonjour,

Citation:
Envoyé par zevince Voir le message
Et la solution de specifier un ID pour chaque n'est pas faisable...
heu... des ID ne peuvent pas être identique dans un document...


s'il s'agit d'iframe cross-domain, tu n'as pas accès à la page principale, et tu ne peux donc pas redimensionner l'iframe(depuis celle-ci) qui est un élément en faisant partie. tu dois faire le redimensionnement depuis la page principale.



ps: désolé, je n'ai pas le temps là, je relirai ta question plus attentivement ce soir. (en espérant néanmoins t'avoir déjà apporté qqes infos utiles. ) :-)
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 14h31   #3
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
En fait je me suis mal exprimé, surtout dans le sujet..
le cross / sub domain, ca marche.. donc j'arrive a redimensionner l'iframe à partir d'elle meme, vu que des deux cotés j'ai le
Code :
1
2
3
<script language="javascript">
    document.domain = "mondomaine.fr";
</script>
Par contre, ca ne marche que pour une seule iframe.. vu que j'y accède par son ID.. et que comme tu le dis fort justement, on ne peut pas avoir deux ID identiques..

Donc y a t-il un moyen de dire a l'iframe d’accéder à son tag <iframe du document parent, sans passer par l'ID..

avoir un équivalent de
Code :
parent.document.getElementById('iframe').height
mais sans utiliser getElementById..
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 14h41   #4
Membre Expert
 
Avatar de Willpower
 
Homme Boris Dessy
sans emploi
Inscription : décembre 2010
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Boris Dessy
Localisation : Belgique

Informations professionnelles :
Activité : sans emploi

Informations forums :
Inscription : décembre 2010
Messages : 872
Points : 1 381
Points : 1 381
je ne sais pas si ça marche (je ne suis pas très friand des iframes) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
var monIframe = null;
var f = window.parent.document.getElementsByTagName('iframe');
for(var i=0;i<f.length;i++){
  if(f[i].src == self.location)
    monIframe = f[i];
}
if(monIframe){
  monIframe.height ....
}
else{
  // iframe non trouvée
}
Willpower est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h03   #5
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
bonne idée, merci !
je vais tester de ce pas .. je reviens pour te dire.. mais je pense que ca devrait marcher..

Et.. je suis pas trop fan d'iframes non plus.. mais parfois, ca se justifie..
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h23   #6
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 310
Points : 310
et oui, ca fonctionne

Merci !
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h09.


 
 
 
 
Partenaires

Hébergement Web