2012-02-06 3 views
1

Je charge une page Web aspx dans un iframe dans le même domaine/protocole que la page parent/conteneur. Le contenu de l'Iframe est parfois plus élevé que l'iframe lui-même. Je ne veux pas afficher les barres de défilement sur mon Iframe.Comment redimensionner dynamiquement la hauteur iframe en fonction de la hauteur de l'élément?

J'ai besoin de redimensionner la hauteur de l'iframe en fonction de la balise 'div' de l'encapsuleur dans la page aspx que l'iframe contiendra. est inférieure à la jquery j'avais écrit pour y parvenir:

$("#TB_window", window.parent.document).height($("body").height() + 50); 

« TB_window » - la div dans laquelle l'Iframe est contenue. 'Body' - l'élément de corps de l'aspx dans l'iframe.

Ce script est attaché au contenu iframe. J'obtiens l'élément TB_window de la page parente. alors que cela fonctionne très bien sur Chrome, mais la TB_window se replie dans Firefox. Je suis vraiment confus/perdu sur la raison pour laquelle cela arrive.

Quelqu'un peut-il offrir des conseils sur la façon dont je peux mieux gérer la situation? Votre aide sera très appréciée Merci

+0

http://stackoverflow.com/questions/754519/how-does-the-diggbar-dynamically-resize-its-iframes-height-based-on-content- pas – Neha

+0

merci pour la réponse ... ressemble à la question était de savoir comment afficher l'iframe en hauteur de la fenêtre parentale complète. dans mon cas, je le rend semblable à une fenêtre "modale", qui peut être déplacée autour de la fenêtre parente. – karry

Répondre

0

Si la différence est pas grand, vous pouvez ajouter

overflow:hidden 

à la classe css

cela ne redimensionne pas la fenêtre mais pourrait être ce que vous recherchons.

+0

je l'ai déjà fait ... il cache tout l'espace blanc va au-delà de la frontière iframe mais il ne fait pas l'iframe se développer lorsque le contenu dépasse la frontière/hauteur prédéfinie – karry

2

Vous devez utiliser la gestion d'un événement sur votre iframe

<iframe id="iframe" src="xyz" onload="FrameLoad(this);" 
    onresize="FrameLoad(this);" scrolling="no" frameborder="0"> 
    </iframe> 


    function FrameLoad(ctrl) { 
    var the_height = ctrl.contentWindow.document.body.scrollHeight; 
    $(ctrl).height(the_height) 
} 

utiliser aussi pour le navigateur cross

document.domain = document.location.hostname;

à la fois page et à la page enfant

Questions connexes