2009-05-26 4 views
0

J'ai cette structure:obtenir contenant div d'un iframe

<div id="source1"> 
    <iframe src="foo.html"></iframe> 
</div> 
<div id="source2"> 
    <iframe src="foo.html"></iframe> 
</div> 

Si j'ai un code js intérieur foo.html, est-il un moyen de dire quel div il est en (sans ajouter paramètre au code iframe)?

Répondre

2

à partir de foo.html, vous pouvez obtenir la fenêtre parente avec parent; Une fois que vous y êtes, vous pouvez comparer la propriété contentWindow de chaque iframe avec this - celle qui correspond à vous.

Rechercher le parent pour toutes les iframes est la partie la plus difficile de ceci; il serait facile d'écrire rapidement en utilisant une bibliothèque comme jQuery, mais voici quelque chose piraté ensemble rapidement:

var mycontainer; 
var iframes = document.getElementsByTagName("iframe"); 
for (var iter = 0; iter <iframes.length; iter++){ 
    if(iframes[iter].contentWindow && iframes[iter].contentWindow === window){ 
     mycontainer = iframes[iter].parentNode; 
    } 
} 
+0

Vous voulez dire probablement iframes var = window.parent.document.getElementsByTagName (« iframe »); – Alexey