28/05/2012, 08:43
|
| | 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 |