Foros del Web » Programando para Internet » ASPX (.net) »

Duda .. ¿Como Redimensionar un iFrame?

Estas en el tema de Duda .. ¿Como Redimensionar un iFrame? en el foro de ASPX (.net) en Foros del Web. Hola gente! Aunque esta duda .. ya ha sido "contestada" .. por muchas personas la realizo nuevamente. por que a mi no me funciona ninguna ...
  #1 (permalink)  
Antiguo 15/06/2009, 03:02
 
Fecha de Ingreso: mayo-2009
Mensajes: 35
Antigüedad: 15 años
Puntos: 0
De acuerdo Duda .. ¿Como Redimensionar un iFrame?

Hola gente!
Aunque esta duda .. ya ha sido "contestada" .. por muchas personas la realizo nuevamente. por que a mi no me funciona ninguna de las soluciones .. que he encontrado, desde las mas sencillas hasta las mas complejas y todas .. me dan la pega en el mismo punto.. No se ajustan al Height de la pagina que carga, siempre se queda en la dimensión de la anterior.

Esto es lo que he encontrado:

<script type="text/javascript" language="JavaScript">
//Ajusta el tamaño de un iframe al de su contenido interior para evitar scroll
function autofitIframe(id){
if (!window.opera && document.all && document.getElementById){
id.style.height=id.contentWindow.document.body.scr ollHeight
} else if(document.getElementById) {
id.style.height=id.contentDocument.body.scrollHeig ht+ 800+"px";
}
}
</script>

-----------------------------------------------------------------------------------------------

<script type="text/javascript">

function getWindowData(n,i){
var ifr=document.getElementById(i).contentWindow.docum ent || document.getElementById(i).contentDocument;
var widthViewport,heightViewport,xScroll,yScroll,width Total,heightTotal;
if (typeof window.frames[n].innerWidth != 'undefined'){
widthViewport= window.frames[n].innerWidth;
heightViewport= window.frames[n].innerHeight;
}else if(typeof ifr.documentElement != 'undefined' && typeof ifr.documentElement.clientWidth !='undefined' && ifr.documentElement.clientWidth != 0){
widthViewport=ifr.documentElement.clientWidth;
heightViewport=ifr.documentElement.clientHeight;
}else{
widthViewport= ifr.getElementsByTagName('body')[0].clientWidth;
heightViewport=ifr.getElementsByTagName('body')[0].clientHeight;
}
xScroll=window.frames[n].pageXOffset || (ifr.documentElement.scrollLeft+ifr.body.scrollLef t);
yScroll=window.frames[n].pageYOffset || (ifr.documentElement.scrollTop+ifr.body.scrollTop) ;
widthTotal=Math.max(ifr.documentElement.scrollWidt h,ifr.body.scrollWidth,widthViewport);
heightTotal=Math.max(ifr.documentElement.scrollHei ght,ifr.body.scrollHeight,heightViewport);
return [widthViewport,heightViewport,xScroll,yScroll,width Total,heightTotal];
}
function resizeIframe(ID,NOMBRE){
document.getElementById(ID).height=null;
document.getElementById(ID).width=null;
window.location='#';//necesario para safari
var m=getWindowData(NOMBRE,ID);
document.getElementById(ID).height=m[5]+50;
document.getElementById(ID).width=m[4]+100;
}
function addEvent(obj, evType, fn, useCapture){

if (obj.addEventListener){
obj.addEventListener(evType, fn, useCapture);

} else if (obj.attachEvent){
obj.attachEvent("on"+evType, fn);

} else {
obj['on'+evType]=fn;
}
}
window.onload=function(){
resizeIframe('miIframe','miIframe');
addEvent(document.getElementById('miIframe'), 'click', function(){resizeIframe('miIframe','miIframe');}, false);
}
</script>

----------------------------------------------------------------------------------------
function resizeIframe( idIframe ) {
var miIframe = document.getElementById( idIframe );
if( miIframe.contentDocument ) { // firefox
alturaPagina = miIframe.contentDocument.height;
}
else { // IE y demás
alturaPagina = miIframe.contentWindow.document.body.scrollHeight;
}
miIframe.style.height = alturaPagina + 100 + "px";
}
--------------------------------------------------------------------------------------------


y todos .. por ese hilo... y que yo veo bien ... se cargan en el onload de la web donde esta el iframe.... en el click..... sin embargo no se por que no me redimensionan...

Alguien me podría ayudar ??????? u ofrecerme una solución mejor....
de antemano muchas gracias!!!

Saludos!

Última edición por k_cijo; 15/06/2009 a las 03:08
  #2 (permalink)  
Antiguo 15/06/2009, 05:12
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda .. ¿Como Redimensionar un iFrame?

Hola yo encontré un código que redimensiona la altura según lo que se le pase, espero que te sirva:

<script type ="text/javascript">
function getWindowData(n,i){
var ifr=document.getElementById(i).contentWindow.docum ent || document.getElementById(i).contentDocument;
var widthViewport,heightViewport,xScroll,yScroll,width Total,heightTotal;
if (typeof window.frames[n].innerWidth != 'undefined'){
widthViewport= window.frames[n].innerWidth;
heightViewport= window.frames[n].innerHeight;
}else if(typeof ifr.documentElement != 'undefined' && typeof ifr.documentElement.clientWidth !='undefined' && ifr.documentElement.clientWidth != 0){
widthViewport=ifr.documentElement.clientWidth;
heightViewport=ifr.documentElement.clientHeight;
}else{
widthViewport= ifr.getElementsByTagName('body')[0].clientWidth;
heightViewport=ifr.getElementsByTagName('body')[0].clientHeight;
}
xScroll=window.frames[n].pageXOffset || (ifr.documentElement.scrollLeft+ifr.body.scrollLef t);
yScroll=window.frames[n].pageYOffset || (ifr.documentElement.scrollTop+ifr.body.scrollTop) ;
widthTotal=Math.max(ifr.documentElement.scrollWidt h,ifr.body.scrollWidth,widthViewport);
heightTotal=Math.max(ifr.documentElement.scrollHei ght,ifr.body.scrollHeight,heightViewport);
return [widthViewport,heightViewport,xScroll,yScroll,width Total,heightTotal];
}

function resizeIframe(ID,NOMBRE){
document.getElementById(ID).height=null;
document.getElementById(ID).width=null;
window.location='#';//necesario para safari
var m=getWindowData(NOMBRE,ID);
document.getElementById(ID).height=m[5];
document.getElementById(ID).width=m[4]+22;
}

function addEvent(obj, evType, fn, useCapture){

if (obj.addEventListener){
obj.addEventListener(evType, fn, useCapture);

} else if (obj.attachEvent){
obj.attachEvent("on"+evType, fn);

} else {
obj['on'+evType]=fn;
}
}

window.onload=function(){
resizeIframe('pp','pp');
addEvent(document.getElementById('pp'), 'load', function(){resizeIframe('pp','pp');}, false);
}

</script>

Y en el body:

<iframe name="pp" id="pp" src="Default.aspx" frameborder="0" scrolling="no" width="518"></iframe>

Saludos
  #3 (permalink)  
Antiguo 15/06/2009, 08:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 35
Antigüedad: 15 años
Puntos: 0
Mensaje Respuesta: Duda .. ¿Como Redimensionar un iFrame?

Muchas gracias por responder.
Si te fijas bien.. es el mismo código que he pegado anteriormente.. solo que yo haciendo pruebas.. modifique el evento de carga, sin embargo... me podrías decir.. que es lo que le haces para que redimensione con cada carga el iframe..???

Saludos!
  #4 (permalink)  
Antiguo 15/06/2009, 10:44
 
Fecha de Ingreso: abril-2009
Mensajes: 63
Antigüedad: 15 años
Puntos: 0
Respuesta: Duda .. ¿Como Redimensionar un iFrame?

En la página original le tienes que dar un valor auto al height, en mi caso yo se lo daba a un div. Espero que sea eso saludos.
  #5 (permalink)  
Antiguo 16/06/2009, 02:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 35
Antigüedad: 15 años
Puntos: 0
Mensaje Respuesta: Duda .. ¿Como Redimensionar un iFrame?

Gracias.. con el auto. tampoco me funciono sin embargo...logre que "funcionara" de otra forma.. le asigno el tamaña de la pagina y le sumo unos cuantos px.

Muchas Gracias!
  #6 (permalink)  
Antiguo 19/10/2009, 08:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 5
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Duda .. ¿Como Redimensionar un iFrame?

Estimado, no se como responderte, pero tengo otra solución a lo que necesitas (es el mismo código que pegaste pero funcionando), en un ejemplo, lo puedes descargar en:

w.carlostoro.cl/iframe2.rar

O visualizar en w.carlostoro.cl/iframe2


Lo único que me falla son los botones "ir a la página anterior" e ""ir a la página siguiente" de FIREFOX, lo demás funciona perfecto.

Si puedes hacer que funcionen esos famosos botones de FIREFOX me avisas.

Saludos, gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.