2010-11-10 63 views
5

Quiero mostrar una imagen dentro de un iframe en mi página web. Sin embargo, el problema es que no puedo lograr que se expanda al 100% de su tamaño.Mostrar imagen en Iframe

Lo que quiero hacer es lo siguiente.

  • Tengo un iframe en mi página web.
  • Llamar una imagen dentro del iframe.
  • Haga que la imagen se expanda a tamaño completo y, como reacción, el iframe me permite desplazarme.
  • no tiene ningún barras de desplazamiento en mi página web

Actualmente, aquí está el código que tengo:

echo"<iframe name='graph' id='graph' src=$image style='position:absolute; top:0px; left:0px; height:100%;width:100%'></iframe>"; 

Lo que esto hace es que, hace que el iframe vienen en la parte superior de mi página web y todavía no se expande al 100%. Si quito la posición: absoluta en lugar:

echo"<iframe name='graph' id='graph' src=$image style='top:0px; left:0px; height:100%;width:100%'></iframe>"; 

termino conseguir que se expanda en anchura para 100%, pero en términos de altura, es sólo 3 píxeles de alto y hay una barra de desplazamiento para desplazarse a la fondo.

Recorrí la web buscando una solución, pero nada de lo que probé funciona. Algunos mencionaron cambiar CSS así, pero fue en vano ...

EDITAR

Otro problema que enfrentamos es que la imagen se alejaste en Firefox. Necesito hacer clic en la imagen dentro del iframe para expandirlo a su tamaño completo. Sin embargo, aparece correctamente en Chrome e IE. ¿Hay una solución para esto?

+0

¿Por qué coloca las imágenes en marcos flotantes en primer lugar? Hacerlo los lleva fuera del alcance de sus reglas CSS o JavaScript en su página, limitando severamente el control de su propia página. –

+0

Dan, no quiero que mi imagen grande introduzca barras de desplazamiento en mi página. No es la mejor manera de hacerlo, lo sé ... – 12345

+0

Luego póngalos dentro de un div con un tamaño máximo fijo, configure su propiedad de desbordamiento para que consiga las barras de desplazamiento en lugar de su página, y use JavaScript para cambiar el tamaño de la imagen después cargas para caber dentro del div y eliminar las barras de desplazamiento. Poner la imagen en un iframe te quita la capacidad de hacer tales cosas. –

Respuesta

0

añadir esto a CSS de su página principal:

body, html { 
    height:100% 
} 
+0

Sin cambio de diodo .. – 12345

+0

Puede depender del resto de su HTML. –

+0

Esto no funcionará porque está incrustando la imagen directamente, poniéndola fuera del contexto del documento actual. –

1

Puede usar algo de JavaScript para detectar el tamaño de los contenidos de iframe y cambiar el tamaño del marco flotante.

0

El contenedor (el div circundante, si no tiene un contenedor debe crear uno) parece ser lo que limita la altura del iframe. Intenta hacer que la altura del contenedor sea del 100%.

+0

El iframe está dentro de una tabla. Y la tabla tiene un atributo de height = "100%". – 12345

0

Su problema es que está incrustando directamente un recurso de imagen.

Esto nunca va a funcionar como lo desea. La imagen siempre será de tamaño original.

Debe establecer la propiedad src del iframe en un archivo HTML independiente con un body propio, envolviendo la imagen. Luego puede darle el 100% de ancho y/o alto dentro del cuerpo usando CSS.

+0

Hmm, en lugar de crear otra página solo para mostrar la imagen. ¿Hay alguna alternativa que pueda mirar? Todo, lo que realmente quiero hacer es mantener mi página existente sin desplazamiento y simplemente ser capaz de desplazar mi imagen ... – 12345

+0

@ 12345 ¿por qué no usar un 'div' con' overflow: auto'? –

+0

que no hace la diferencia ... http: //api.fatherstorm.com/test/iframe2.php – FatherStorm

0

si tiene acceso a la imagen a nivel local y se pueden utilizar las funciones de PHP GD ...

$img_rsrc = imagecreatefromjpeg($path_to_image); 
// or imagecreatefrompng, imagecreatefromgif, etc, depending on the type of your image 
$height = imagesy($img_rsrc); 
$width = imagesx($img_rsrc); 
imagedestroy($img_rsrc); 

A continuación, establezca el tamaño de su iframe en píxeles según la altura y el ancho. Es posible que tenga que agregar un bit al alto y ancho para tener en cuenta los márgenes.

+0

Aah ... pensé que funcionó. Desafortunadamente no lo hizo Mike. Si la imagen es lo suficientemente grande, agrega scroll a toda la página y no solo al iframe ... – 12345

+0

Otro problema que enfrento es que la imagen se aleja en Firefox. Necesito hacer clic en la imagen dentro del iframe para expandirlo a su tamaño completo. Sin embargo, aparece correctamente en Chrome e IE. ¿Hay una solución para esto? – 12345

+0

Esta es la funcionalidad de Firefox, porque el iframe es demasiado pequeño para mostrar la imagen completa. No sé de una manera de suprimir esto. En cuanto al comentario anterior, creo que deberías buscar una solución de JavaScript. –

4

utilice el código de abajo para mostrar la imagen.

<iframe frameborder="0" scrolling="no" width="100%" height="100%" 
    src="../images/eightball.gif" name="imgbox" id="imgbox"> 
    <p>iframes are not supported by your browser.</p> 
</iframe><br /> 


<a href="../images/redball.gif" target="imgbox">Red Ball</a><br /> 
<a href="../images/floatingball.gif" target="imgbox">Floating Ball</a><br /> 
<a href="../images/eightball.gif" target="imgbox">Eight Ball</a>