Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/05/2012, 08:43
Siroman
 
Fecha de Ingreso: mayo-2012
Mensajes: 4
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Iframe Redimensionable con pagina en otro dominio

encontre solucion para que me redimensione a la altura pero me surgio otro...., si le doy a alguna pestaña o enlace interno, me redirecciona a la pagina del principio(la que pongo en el src del iframe)
os pongo aqui el codigo a ver si alguien me puede hechar una mano con este problema >.<
html1:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>IFrame Resize Sample</title>
<script type="text/javascript" src="FrameManager.js"></script>
</head>
<body>
<div>The Following is an iframe:</div>
<iframe id="ifrSample1" scrolling="no" frameborder="0" src="www.paginaExterna.com" style="margin:0px;width:100%;height:100px" onload="FrameManager.registerFrame(this)">

</iframe>
</body>
</html>

js de este html:


// FrameManager.js -- Must be added in Hosting window
var FrameManager =
{
currentFrameId : '',
currentFrameHeight : 0,
lastFrameId : '',
lastFrameHeight : 0,
resizeTimerId : null,

init : function()
{
if (FrameManager.resizeTimerId == null)
{
FrameManager.resizeTimerId = window.setInterval(FrameManager.resizeFrames, 500);
resizeTimerId = null;
}
},

resizeFrames : function()
{
FrameManager.retrieveFrameIdAndHeight();

if ((FrameManager.currentFrameId != FrameManager.lastFrameId) ||
(FrameManager.currentFrameHeight != FrameManager.lastFrameHeight))
{
var iframe = document.getElementById(FrameManager.currentFrameI d.toString());

if (iframe == null) return;

iframe.style.height = FrameManager.currentFrameHeight.toString() + "px";

FrameManager.lastFrameId = FrameManager.currentFrameId;
FrameManager.lastFrameHeight = FrameManager.currentFrameHeight;
window.location.hash = '';
}
},

retrieveFrameIdAndHeight : function()
{
if (window.location.hash.length == 0) return;

var hashValue = window.location.hash.substring(1);
if ((hashValue == null) || (hashValue.length == 0)) return;

var pairs = hashValue.split('&');

if ((pairs != null) && (pairs.length > 0))
{
for(var i = 0; i < pairs.length; i++)
{
var pair = pairs[i].split('=');

if ((pair != null) && (pair.length > 0))
{
if (pair[0] == 'frameId')
{
if ((pair[1] != null) && (pair[1].length > 0))
{
FrameManager.currentFrameId = pair[1];
}
}
else if (pair[0] == 'height')
{
var height = parseInt(pair[1]);

if (!isNaN(height))
{
FrameManager.currentFrameHeight = height;
FrameManager.currentFrameHeight += 15;
}
}
}
}
}
},

registerFrame : function(frame)
{
var currentLocation = location.href;
var hashIndex = currentLocation.indexOf('#');
if (hashIndex > -1)
{
currentLocation = currentLocation.substring(0, hashIndex);
}
frame.contentWindow.location = frame.src + '?frameId=' + frame.id + '#' + currentLocation;
}
};

window.setTimeout(FrameManager.init, 300);

Última edición por Siroman; 28/05/2012 a las 10:53