• Domingo 22 de Diciembre de 2024, 23:47

Autor Tema:  Iframes Dinamicos  (Leído 7731 veces)

DUNE

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Iframes Dinamicos
« en: Jueves 11 de Agosto de 2005, 17:49 »
0
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

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Iframes Dinamicos
« Respuesta #1 en: Jueves 11 de Agosto de 2005, 20:06 »
0
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
  1. ...
  2. <script language="javascript">
  3. function cargar(url){
  4.   var iframe = document.getElementById('iframe');
  5.   iframe.src = url;
  6.  
  7.   iframe.width = iframe.contentDocument.getElementById('ancho').value;
  8.   iframe.height = iframe.contentDocument.getElementById('alto').value;
  9.  
  10. }
  11. </script>
  12.  
  13. <a href="javascript:cargar('uno.html');">Uno</a>
  14. <br>
  15. <a href="javascript:cargar('dos.html');">Uno</a>
  16. <br>
  17. <iframe id="iframe" width="20" height="20" src=""></iframe>
  18. ....
  19.  
  20.  


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">

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


Espero que esto te sirva.
Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

DUNE

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Iframes Dinamicos
« Respuesta #2 en: Viernes 12 de Agosto de 2005, 08:56 »
0
hola voy a intentarlo. En una web encontre un ejemplo donde en el la pagina a cargar ponias esta funcion:
Código: Text
  1.  
  2. function goSetHeight() {
  3.   parent.setIframeHeight('cata');
  4. }
  5.  
  6.  

y en la ventana padre se añadirian el siguiente codigo:

Código: Text
  1.  
  2. &#60;script type=&#34;text/javascript&#34;&#62;
  3. function getDocHeight(doc) {
  4.   var docHt = 0, sh, oh;
  5.   if (doc.height) docHt = doc.height;
  6.   else if (doc.body) {
  7.     if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight;
  8.     if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight;
  9.     if (sh && oh) docHt = Math.max(sh, oh);
  10.   }
  11.   return docHt;
  12. }
  13.  
  14. function setIframeHeight(iframeName) {
  15.   alert('Entro en setIframeHeight');
  16.   var iframeWin = window.frames[iframeName];
  17.   var iframeEl = document.getElementById? document.getElementById(iframeName): document.all? document.all[iframeName]: null;
  18.   if ( iframeEl && iframeWin ) {
  19.     iframeEl.style.height = &#34;auto&#34;; // helps resize (for some) if new doc shorter than previous  
  20.     var docHt = getDocHeight(iframeWin.document);
  21.     // need to add to height to be sure it will all show
  22.     if (docHt) iframeEl.style.height = docHt + 30 + &#34;px&#34;;
  23.   }
  24. }
  25.  
  26. function loadIframe(iframeName, url) {
  27.   if ( window.frames[iframeName] ) {
  28.     window.frames[iframeName].location = url;  
  29.     return false;
  30.   }
  31.   else return true;
  32. }
  33. &#60;/script&#62;
  34.  
  35. &#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;
  36.  
  37.  
  38. &#60;/body&#62;
  39. &#60;/html&#62;
  40.  
  41.  
  42.  

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

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Iframes Dinamicos
« Respuesta #3 en: Viernes 12 de Agosto de 2005, 10:13 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Iframes Dinamicos
« Respuesta #4 en: Lunes 26 de Septiembre de 2005, 17:42 »
0
nadie me puede echar una mano?? :smartass:

xcx

  • Miembro MUY activo
  • ***
  • Mensajes: 175
  • Nacionalidad: cl
    • Ver Perfil
    • Fotos y captura
Re: Iframes Dinamicos
« Respuesta #5 en: Lunes 26 de Septiembre de 2005, 22:06 »
0
Uhm.. y no te convendría mejor hacer unos layers para eso? mira, prueba esto como ejemplo.
Código: Text
  1.  
  2. &#60;%@LANGUAGE=&#34;VBSCRIPT&#34; CODEPAGE=&#34;1252&#34;%&#62;
  3. &#60;html&#62;
  4. &#60;head&#62;
  5. &#60;title&#62;Untitled Document&#60;/title&#62;
  6. &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=iso-8859-1&#34;&#62;
  7. &#60;/head&#62;
  8.  
  9. &#60;body&#62;
  10. &#60;DIV ID=oDiv STYLE=&#34;position: relative; top=0; left=0; width: 100%; height: 300px; overflow: auto;&#34;&#62;
  11. &#60;table width=&#34;100%&#34; border=&#34;0&#34; cellspacing=&#34;0&#34; cellpadding=&#34;0&#34;&#62;
  12.   &#60;tr&#62;
  13.     &#60;td&#62;ddd&#60;/td&#62;
  14.     &#60;td&#62;ddd&#60;/td&#62;
  15.     &#60;td&#62;ddd&#60;/td&#62;
  16.   &#60;/tr&#62;
  17. &#60;/table&#62;
  18.  &#60;/div&#62;
  19.  
  20. &#60;/body&#62;
  21. &#60;/html&#62;
  22.  
  23.  
Repite los tr tanto como quieras y veras que aparecerá un scroll. A mí me ha sido muy util, bueno si quieres que se muestre o no, puedes alterar el style visible para ello. ojala te sirva.. chiabela.