Foros del Web » Programando para Internet » Javascript »

problema con el Frame

Estas en el tema de problema con el Frame en el foro de Javascript en Foros del Web. alquien podria dar solucion a este escript: funciona bien para una pagina con 2 frames, pero si tengo una pagina de 3 frames... [sperior, centro, ...
  #1 (permalink)  
Antiguo 06/04/2002, 17:46
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
problema con el Frame

alquien podria dar solucion a este escript: funciona bien para una pagina con 2 frames, pero si tengo una pagina de 3 frames... [sperior, centro, inferior] y vinculo para que este habra en el centro no me funciona que tengo que poner algun "if" .... gracias -script maniacos -

-------------------------------------------
<html>
<head>
<title>pagina superior--para buscar en pagina inferior</title>
<script language="JavaScript">
var NS4 = (document.layers);
var IE4 = (document.all);
var win = top.el_problema.window; //el_problema, es el Top destino --
var n = 0;
function findInPage(str) {
var txt, i, found;
if (str == "")
return false;
if (NS4) {
if (!win.find(str))
while(win.find(str, false, true))
n++;
else
n++;
if (n == 0)
alert("Not found.");
}
if (IE4) {
txt = win.document.body.createTextRange();
for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
txt.moveStart("character", 1);
txt.moveEnd("textedit");
}
if (found) {
txt.moveStart("character", -1);
txt.findText(str);
txt.select();
txt.scrollIntoView();
n++;
}
else {
if (n > 0) {
n = 0;
findInPage(str);
}

else
alert(" no encontrado ");
}
}

return false;
}

</script>
</head>
<body>

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<center>
<td width="53%" valign="top" align="right">
<!-- <::inicio de busqueda, ::> -->
</center>
<form name="search" onSubmit="return findInPage(this.string.value);">
<p align="right">
<font size="3">
<input name="string" type="text" size="19" onChange="n = 0;">
</font><input type="submit" value="Buscar">
</form>
<center>
<!-- <::inicio de busqueda, i::> -->
</td>
</tr>
</table>

</body>
</html>
------------------------------------
  #2 (permalink)  
Antiguo 07/04/2002, 08:00
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema con el Frame

adex, me funciona bién con 3 frames también, pega el código fuente del frameset, a ver si el problema te viene por ahí.
  #3 (permalink)  
Antiguo 08/04/2002, 08:04
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: problema con el Frame

bueno, probare.... y te aviso.----
  #4 (permalink)  
Antiguo 08/04/2002, 09:12
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: problema con el Frame

el problema lo pueden vizualizar aqui... <a href='ir.asp?http://www.geocities.com/moyobambavirtual' target='_blank'>http://www.geocities.com/moyobambavirtua...</a>
[http://www.geocities.com/moyobambavirtual] gracias...
  #5 (permalink)  
Antiguo 08/04/2002, 11:51
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema con el Frame

Hola de nuevo, Adex,
he estado revisandolo todo.
Amos a ver; efectivamente cuando pincho en el linsk que no da problema, se abre ventana nueva con 2 frames, y va perfecto.
Pero cuando pincho en el link que da problema, no se me abre en ventana nueva, si no el frame del centro, con lo cual, en un frame de una página de 3 frames, carga otra página que tiene 2 frames, con lo que en total son 5.

El javascript indica que debe buscar en un marco que se llama el_problema que es el nombre del frame principal de la pagina de frames que contiene 2 frames.

Pero cuando ésta carga dentro de la otra página de frames, que contiene 3 frames es cuando da el error.
Fíjate que el frame principal (el central) de la pag. de 3 frames, también se llama &quot;el_problema&quot; con lo que cuando carga la otra, se encuentra con que contiene otro marco que lleva el mismo nombre.
De esta forma si el javascript indica que se busque en el contenido escrito contenido en la ventana &quot;top.el_problema&quot; se encuentra con que ese documento es precisamente el otro frameset.

Joer, yo me entiendo, espero haberme hecho entender

No te sugiero nada porque no sé cómo quieres poner la web definitiva, pero prueba a cambiar el nombre del frame principal del frameset de 3 frames.

Resumiendo, tienes dos frames que se llaman igual, y en el momento de ejecutar el script por parentela al que llama es al otro frameset.

Si no me expliqué bién escríbeme y te lo explico vía chat.

un saludo
  #6 (permalink)  
Antiguo 08/04/2002, 15:52
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: problema con el Frame

tunait aunque no me creas te entendi perfectamente bien... y tambien e intentado jugando con diferentes nombres para el &quot;Target&quot; y no ocurre nada positivo, insisto en este tema por que el J.Escript es muy bueno para paginas extensas... me parece que hay que ponerle condiciones &quot;if&quot; para que reconozca en que Frame o Target esta, es una opcion que se me ocurre pero no Doy pues Hombre... aver si me das una mano ;) [email protected]
  #7 (permalink)  
Antiguo 08/04/2002, 16:08
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema con el Frame

:) Re-holas,

bueno, ahora te escribo, de todas formas te dejo aquí la respuesta por si a alguien le interesa el desenlace final :P

Finalmente el problema estaba en que dos frames tenían el mismo nombre, y cuando desde el script se llamaba a &quot;top.el_problema&quot; en ese momento el documento contenido en esa ventana era otra página de frames, lo que producía el error.

Cambiando el nombre al frame central del frameset de 3 frames, nos encontrabamos con al llamar a &quot;top.el_problema&quot; ese marco no existía. ¿Por que?
top: la madre absoluta
el_problema: el frame hijo contenido en otro hijo de la madre absoluta.

Pero la madre absoluta ahora no tiene ningún frame hijo que se llame así, con lo que en el script habíamos de añadir el pariente intermedio.

Resumiendo:

Cambios: En el frameset de 3 frames le cambié el nombre al frame principal a &quot;medio&quot;
En el script: a la línea top.el_problema le añadí el nombre del marco que contiene la otra web de frames medio de forma que quedó:
var win=top.medio.el_problema

... y funcionó bien!!

saludos!
  #8 (permalink)  
Antiguo 08/04/2002, 17:02
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: problema con el Frame

gracias por solucionar este problemita...que me tenia loco, y funciona de maravilla..... pero....... encontre otro que creo que es menor (o invertido si se puede llamar asi) cuando quiero abrirlo solo ala pagina de dos frames me sale el conflicto inicial.... gracias y saludos ;)
  #9 (permalink)  
Antiguo 10/04/2002, 06:11
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Re: problema con el Frame

:) de nadas!

Arreglé el problema añadiendo un condicional.

Cambia en el script la línea:

var win = top.el_problema.window; //el_problema, es el Top destino --


Por lo siguiente:

var win
if(top.frames[0].name==&quot;encabezado&quot;){win=top.el_problema .window;}
if(top.frames[0].name==&quot;superior&quot;){win=top.medio.el_prob lema.window;}

Esto verifica en dónde se está cargando y da un valor u otro a la variable win según convenga.

Espero te sirva

Un saludo
  #10 (permalink)  
Antiguo 10/04/2002, 19:48
Avatar de adex  
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: problema con el Frame

maravillosamente magnifico... gracias
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 13:49.