Programación Web y Scripting > JavaScript

 Iframes Dinamicos

(1/2) > >>

DUNE:
Buenas :hola:  estoy haciendo una pagina con iframes y necesitaria que fuesen dinamicos.

me explico: Quiero incrustar paginas HTMl dentro de otra pero los iframes deberan ajustarse a la pagina a incrustar. Si no pongo ni heigth ni weithg y la pagina es pequeña  me deja un tamaño estandar y si es demasiado grande me saca los sccrolls.

Muchas gracias  :alien:

Altareum:
Tu problema radicar principalmente en la página que vas a cargar, no en el iframe.
No hay forma de tomar el tamaño de una página ya que no tienen dicha propiedad. Un ejemplo muy claro de esto es que la ventana de un navegador nunca toma el tamaño de la página, sino que la página se amolda a la ventana, excepto las tablas que tienen medidas establecidas (no en %)....

Si estas páginas que querés cargar, las creaste vos... lo que podés hacer es añadirles variables, que luego tome la página que las carga...

Por ejemplo, tenemos el archivo index.php en el cual insertas tu iframe y ponemos una funciòn de javascript para cargar las páginas:

index.html

--- Código: Text ---...<script language="javascript">function cargar(url){  var iframe = document.getElementById('iframe');  iframe.src = url;    iframe.width = iframe.contentDocument.getElementById('ancho').value;  iframe.height = iframe.contentDocument.getElementById('alto').value;  }</script> <a href="javascript:cargar('uno.html');">Uno</a><br><a href="javascript:cargar('dos.html');">Uno</a><br><iframe id="iframe" width="20" height="20" src=""></iframe>....  

Y en las otras paginas pones unos campos ocultos con las medidas que quieres:

uno.html

--- Citar ---...
<input type="hidden" id="ancho" value="300">
<input type="hidden" id="alto" value="100">

--- Fin de la cita ---

dos.html

--- Citar ---...
<input type="hidden" id="ancho" value="500">
<input type="hidden" id="alto" value="500">

--- Fin de la cita ---


Espero que esto te sirva.
Altareum.

DUNE:
hola voy a intentarlo. En una web encontre un ejemplo donde en el la pagina a cargar ponias esta funcion:

--- Código: Text --- function goSetHeight() {  parent.setIframeHeight('cata');}  
y en la ventana padre se añadirian el siguiente codigo:


--- Código: Text --- &#60;script type=&#34;text/javascript&#34;&#62;function getDocHeight(doc) {  var docHt = 0, sh, oh;  if (doc.height) docHt = doc.height;  else if (doc.body) {    if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;    if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;    if (sh && oh) docHt = Math.max(sh, oh);  }  return docHt;} function setIframeHeight(iframeName) {  alert('Entro en setIframeHeight');  var iframeWin = window.frames[iframeName];  var iframeEl = document.getElementById? document.getElementById(iframeName): document.all? document.all[iframeName]: null;  if ( iframeEl && iframeWin ) {    iframeEl.style.height = &#34;auto&#34;; // helps resize (for some) if new doc shorter than previous      var docHt = getDocHeight(iframeWin.document);    // need to add to height to be sure it will all show    if (docHt) iframeEl.style.height = docHt + 30 + &#34;px&#34;;  }} function loadIframe(iframeName, url) {  if ( window.frames[iframeName] ) {    window.frames[iframeName].location = url;       return false;  }  else return true;}&#60;/script&#62; &#60;iframe name=&#34;cata&#34; id=&#34;cata&#34;  src=&#34;http://manzaneda.tsm.inet:22180/catalogo/generico/productos/ServicioPrueba_01/QueEs.html&#34; width=&#34;260px&#34; scrolling=&#34;no&#34; frameborder=&#34;0&#34;&#62; &#60;/iframe&#62;  &#60;/body&#62;&#60;/html&#62;   
Pero no se por que  :blink: no me ejecuta las funciones javascript de la ventana padre. Vamos se que es que no llega hasta ahi, pero no entiendo por que.

DUNE:
me acabo de enterar que las paginas HTML que incrutare en las paginas las crea el usuario de la aplicacion, por lo que no se pueden poner campos ocultos. Tengo que hacerlo directamente desde la ventana padre

DUNE:
nadie me puede echar una mano?? :smartass:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa