Foros del Web » Programando para Internet » Javascript »

Redimensionar Iframe en Firefox

Estas en el tema de Redimensionar Iframe en Firefox en el foro de Javascript en Foros del Web. Hola, estoy intentando redimensionar un iframe en firefox a traves de un script y no consigo hacerlo . El script que uso es el siguiente: ...
  #1 (permalink)  
Antiguo 05/01/2009, 07:51
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Redimensionar Iframe en Firefox

Hola, estoy intentando redimensionar un iframe en firefox a traves de un script y no consigo hacerlo .
El script que uso es el siguiente:

function resizeIframe(idIframe){
var miIframe = document.getElementById(idIframe);
var alturaPagina = miIframe.contentDocument.body.offsetHeight
miIframe.style.height=alturaPagina;
}

Pero cuando lo ejecuta firefox no funciona bien, ¿alguien sabe como arreglarlo??
Muchsa gracias
  #2 (permalink)  
Antiguo 05/01/2009, 08:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Redimensionar Iframe en Firefox

Siempre que uses style con una propiedad css que requiera medidas, tenés que agregar la unidad (alturaPagina+'px') al valor que definas, si no, en Firefox no te funcionará. Adicionalmente, hay una faq que puede servirte: http://www.forosdelweb.com/2462866-post269.html
  #3 (permalink)  
Antiguo 07/01/2009, 04:18
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Redimensionar Iframe en Firefox

Y una pregunta, si lo quiero hacer con dos iframes???
Es que lo he intentado hacer con un iframe y me funciona bien pero cuando intento redimensionar dos iframes en un mismo html solo me redimensiona uno.
  #4 (permalink)  
Antiguo 07/01/2009, 04:55
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Redimensionar Iframe en Firefox

Tendrás que colocarle un name y un id diferente a cada iframe y agregarlos en las llamadas a las funciones.
  #5 (permalink)  
Antiguo 07/01/2009, 06:55
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Redimensionar Iframe en Firefox

Hola y muchas gracias por responder tan rápido. Lo habia hecho como tu lo habias dicho pero me sigue sin funcionar.
Mira lo que tengo puesto y no me funciona:

En el html he hecho dos script:

Cita:
<script>
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>
El segundo script:

Cita:
<script>
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('pp2','pp2');
addEvent(document.getElementById('pp2'), 'load', function(){resizeIframe('pp2','pp2');}, false);
}
</script>
Y en el html las llamadas del iframe las hago así:

Cita:
<iframe name="pp2" id="pp2" src="noticias.html" frameborder="0" scrolling="no"></iframe>

<iframe name="pp" id="pp" src="dia.html" frameborder="0" scrolling="no"></iframe>
Pero no sé porque solo me redimensiona uno u otro... A ver si podrias decirme porque falla. Muchas gracias de nuevo
  #6 (permalink)  
Antiguo 07/01/2009, 07:03
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Redimensionar Iframe en Firefox

Dejá sólo una declaración de la función y hacé una única llamada a window.onload (si hacés más de una, la segunda sobreescribe la primera):
Código PHP:
window.onload=function(){
//acá todas las acciones en el mismo onload

  #7 (permalink)  
Antiguo 07/01/2009, 09:11
 
Fecha de Ingreso: enero-2009
Mensajes: 7
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Redimensionar Iframe en Firefox

Ya está solucionado, muchas 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 06:40.