2017-10-21 26 views
0

J'ai un Iframe dans une page Web qui contient un Iframe enfant. Je veux changer la largeur de l'iframe enfant en utilisant jquery. Notez que iframe interne n'a pas d'ID. comment puis-je faire cela? (les iframes sont de mon domaine)Comment changer la largeur de l'iframe dans un iframe?

merci beaucoup

<Iframe id="iframeDoc "> 
    // some codes 
    <Iframe> 
    // another page codes 

    </Iframe> 
</Iframe> 

J'ai essayé ces codes mais personne ne n'a pas fonctionné!

$('#iframeDoc > iframe').width("400px"); 

$('#iframeDoc iframe').width("400px"); 

$('#iframeDoc').contents().find("iframe").width("400px"); 
+1

Pouvez-vous poster votre structure HTML aussi? – BenM

+2

La première étape dans le traitement des iframes consiste à * s'en débarrasser *. Non seulement vous avez un iframe, en fait vous avez * imbriqué * iframes! –

+0

@Derek: Sa partie d'un cms j'ai besoin de changer! – Saeid

Répondre

1

Vous pouvez utiliser contentWindow pour sélectionner le iFrame imbriqué:

let pageiFrame = document.getElementById('iframeDoc') 
let nestediFrame = pageiFrame.contentWindow.document.getElementBySelector('iframe') 

pageiFrame.style.width = '400px' 
nestediFrame.style.width = '400px' 
+0

merci #iframeDoc ne fonctionne pas et semble être changé en iframeDoc. pageiFrame.style.width fonctionne bien, mais la ligne suivante semble avoir une erreur et javascript ne fonctionne pas! – Saeid

0

Si votre iframe se trouve sur un autre domaine - cela peut être utile.

Essayez d'examiner la méthode Window.postMessage(). Vous pouvez l'utiliser à l'intérieur de votre iframe et window.addEventListener('message', messageHandlerFn) à l'extérieur.

Mais cela ne convient que dans le cas où vous avez la possibilité de modifier les sources en dehors de iframe.