2010-07-22 4 views

Répondre

2

Malheureusement, vous ne pouvez pas vraiment mettre à l'échelle un iframe afin que son contenu change de taille. Pour le navigateur, l'iframe est une fenêtre sur un autre contexte de rendu qui a sa propre disposition en fonction de son propre CSS. Vous êtes à la merci de la façon dont le contenu de l'iframe est présenté.

Si l'URL iframe provient d'un site différent et que vous ne pouvez pas le modifier, vous ne pouvez rien faire.

Si vous pouvez modifier la page affichée dans l'iframe, eh bien, je suppose que vous ne le demanderiez pas.

+0

J'ai accès à l'autre site dans le sens où je peux définir son en-tête. Mais je ne sais rien du code réel sur l'autre site. Je ne suis pas sûr comment je pourrais utiliser CSS pour définir la taille de la page – Anonymous

+0

Pas vraiment vrai, vous pouvez utiliser la directive zoom de css pour l'échelle. Le support est raisonnable dans les navigateurs modernes. Voir la réponse ci-dessous. –

+0

Vous pouvez utiliser 'transform: scale (CSS) de CSS3; transform-origin: 0 0; '(ajoutez également des préfixes de fournisseur), et pour MSIE 8 et ci-dessous:' filter: progid: DXImageTransform.Microsoft.Matrix (M11 = 0.5, M12 = 0, M21 = 0, M22 = 0.5, taille de = "expansion automatique"). – Blaise

0

Vous pouvez essayer d'étendre la largeur/hauteur de l'iframe et de vérifier la largeur du client par rapport à la largeur de l'iframe. Si elles sont égales, il n'y a pas de barre de défilement, sinon il y a.

Utilisez une approche médiane pour l'efficacité. En code sudo:

dx = iframe.width; 
while (dx > 1) { 
    previous = iframe.width 
    if(iframe.width - iframe.clientWidth > 0) { 
    iframe.width += dx*2; 
    } else { 
    iframe.width -= dx/2; 
    } 
    dx = Math.abs(previous-iframe.width) 
} 
Questions connexes