Foros del Web » Creando para Internet » Diseño web »

actualizar iframe padre cuando iframe hijo cambia.

Estas en el tema de actualizar iframe padre cuando iframe hijo cambia. en el foro de Diseño web en Foros del Web. que tal, les comento mi situación. Actualmente estoy trabajando en un página web bastante sencilla que en la página index.html posee dos iframes, uno para ...
  #1 (permalink)  
Antiguo 03/11/2009, 18:50
 
Fecha de Ingreso: enero-2009
Mensajes: 2
Antigüedad: 8 años, 11 meses
Puntos: 0
actualizar iframe padre cuando iframe hijo cambia.

que tal, les comento mi situación. Actualmente estoy trabajando en un página web bastante sencilla que en la página index.html posee dos iframes, uno para mostrar un menú, y otro para mostrar el contenido de los links de dicho menú.

algo que logre es hacer que el tamaño del iframe de contenido se adapte al contenido de la página que muestra cada vinculo del menú usando este script que encontré

Código:
/***********************************************
* IFrame SSI script II- © Dynamic Drive DHTML code library 
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height:
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none:
var iframeids=["contenido", "menu", "servicios"]

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers

function resizeCaller() {
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++){
if (document.getElementById)
resizeIframe(iframeids[i])
//reveal iframe for lower end browsers? (see var above):
if ((document.all || document.getElementById) && iframehide=="no"){
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i])
tempobj.style.display="block"
}
}
}

function resizeIframe(frameid){
var currentfr=document.getElementById(frameid)
if (currentfr && !window.opera){
currentfr.style.display="block"
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
currentfr.height = currentfr.Document.body.scrollHeight;
if (currentfr.addEventListener)
currentfr.addEventListener("load", readjustIframe, false)
else if (currentfr.attachEvent){
currentfr.detachEvent("onload", readjustIframe) // Bug fix line
currentfr.attachEvent("onload", readjustIframe)
}
}
}

function readjustIframe(loadevt) {
var crossevt=(window.event)? event : loadevt
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
if (iframeroot)
resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url){
if (document.getElementById)
document.getElementById(iframeid).src=url
}

if (window.addEventListener)
window.addEventListener("load", resizeCaller, false)
else if (window.attachEvent)
window.attachEvent("onload", resizeCaller)
else
window.onload=resizeCaller
simplemente lo guarde en un archivo.js y lo linkeo a la página index.html ahora bien, la cuestión es la siguiente, una de las páginas contiene un submenu con varios links que quiero mostrar dentro del iframe de contenido e intente aplicar el mismo script pero no me funciono, pues en efecto el iframe dentro de la página con el contenido de los links del submenu actualiza su tamaño, pero el iframe padre (el de contenido) no se actualiza y porsupuesto genera un scrollbar que quisiera evitar.

alguna sugerencia?
alguna recomendación?
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 08:40.