Foros del Web » Programando para Internet » Javascript »

If (navigator ... window.location.href ...

Estas en el tema de If (navigator ... window.location.href ... en el foro de Javascript en Foros del Web. Estoy usando el script siguiente dentro de una página llamada juegos.php (a la que se accede pulsando un botón en el index.php principal de la ...
  #1 (permalink)  
Antiguo 13/05/2007, 10:52
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
De acuerdo If (navigator ... window.location.href ...

Estoy usando el script siguiente dentro de una página llamada juegos.php (a la que se accede pulsando un botón en el index.php principal de la web):

<script language="JavaScript">

if(navigator.userAgent.indexOf("Firefox")!=-1) {window.location.href="juegos_firefox.php"}

else if(navigator.appName == "Netscape"){window.location.href="juegos_netscape. php"}

else if(navigator.userAgent.indexOf("Opera")!=-1){window.location.href="juegos_opera.php"};

</script>

Es una maravilla, la verdá, funciona muy bien; pero la pega que tiene es que cuando el usuario de Opera está ya dentro de juegos_opera.php y quiere volver atrás en su navegación, resulta que le lleva a la página juegos.php (mostrándola 100% en blanco) y tiene que volver a pulsar el botón de retroceder en el navegador para así llegar al index.php del que en principio (según el user cree) venía...

Si me explicado mal les ruego me lo comuniquen por favor... en resúmen, lo que deseo es que me ayuden a conseguir que al igual que para el resto de navegadores probados, también en Opera (uso para pruebas la versión
9.10, compilación 8679) el navegante haga click en el botón "Atrás" y vuelva al apartado principal de la web (no al archivo desde el que fue redireccionado...).

Un saludo y muchas gracias a todos desde ahora !!

Última edición por bodyboard_jerez; 07/06/2007 a las 06:13
  #2 (permalink)  
Antiguo 13/05/2007, 12:38
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Bueno, en esa misma página juegos.php podrías mirar el document.referrer para ver si es juegos_xxxxx.php. Si es alguno de los tres, entonces es que se ha pulsado atrás, y debes redireccionar a index.php.

Es una idea.
Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 13/05/2007, 12:51
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Gracias por responder !! Pero sorry... no logro comprender bien lo que comentas...

¿Podrían indicarme qué tendría que cambiar o añadir? Es que ese código que te comento está en el juegos.php

Gracias nuevamente !!
  #4 (permalink)  
Antiguo 13/05/2007, 12:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Encontré esto...

<SCRIPT language="JavaScript">
<!--

function cameFrom(where) {
if (!document.referrer && !where) return true;
else return (document.referrer.indexOf(where)>=0)
}

if (cameFrom("domain1.com")) {
location.replace("newpage1.html");
}
else if (cameFrom("domain2.com")) {
location.replace("newpage2.html");
}

//-->
</SCRIPT>


Creen que podría hacerlo yo como solución?

Gracias.
  #5 (permalink)  
Antiguo 13/05/2007, 15:42
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Sí, solo tienes que mirar si document.referrer contiene juegos_xxxxx.php, si sí contiene, entonces redireccionar a index.php

Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 13/05/2007, 16:34
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Lo siento pero no se como hacerlo; toda ayuda será bienvenida por favor... no estoy muy familiarizado con el tema.

Gracias y un saludo !!
  #7 (permalink)  
Antiguo 02/06/2007, 09:15
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Busqueda Re: If (navigator ... window.location.href ...

Por favor... no logro dar con la solución....
  #8 (permalink)  
Antiguo 02/06/2007, 09:37
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Deberías utilizar el método de Strings indexOf para ver si la cadena document.referrer contiene la cadena "juegos_". Si la contiene entonces redireccionas a index.php.

Sería algo así:
Código PHP:
if( document.referrer.indexOf("juegos_")!=-)
   
window.location.href="index.php"

Intenta buscar y documentarte un poco más. Debes desgranar el problema en sub-problemas. Si tienes problemas con encontrar una subcadena dentro de otra, debes usar un buscador para enterarte cómo se puede hacer. También deberías postear tus progresos y dudas a lo largo del post, será más fácil guiarte. Se trata de que al final el que lo consiga seas tú.


Espero que así te sirva.
Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #9 (permalink)  
Antiguo 03/06/2007, 00:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Ante todo gracias por la respuesta...

Son ya muchas horas infructuosas dedicadas a este asunto... por comentarles algo les pongo las pruebas de scripts que, entre tantas otras, he realizado en el localhost:

Código:
<SCRIPT LANGUAGE="JavaScript">
var refarray = new Array();
refarray['http: // 127.0.0.1/juegos/indice_opera.php'] = "http: // 127.0.0.1/index.php";
for (var i in refarray) {
if (document.referrer.indexOf(i) != -1) window.location.replace(refarray[i]);
}
//  End -->
</script>

<script language="JavaScript" type="text/JavaScript">
if (document.referrer.indexOf ("indice_opera.php") == -1){document.location.href="http: // 127.0.0.1/index.php"}; 
</script> 

<script type="text/JavaScript">
/* Indicamos en un array las páginas que son válidas como referer, es decir, si el usuario viene desde alguna de estas páginas entonces le dejamos ver lo que quiere ver */
var procedenciaValida = new Array(
"http: // 127.0.0.1/juegos/indice_opera.php",
"http: // 127.0.0.1/"
);
/* Dejamos que vengan desde ahi arriba, si no, los redirigimos al índice de nuestra web, a continuación lo hacemos */ var ok = true; // Servirá para saber si se ha encontrado un referer bueno 
for(i in procedenciaValida) {
if(document.referrer.indexOf(procedenciaValida[i]) > -1) {
ok = false; /* Hemos encontrado un refere bueno, ponemos ok a true */ 
}
}
if(!ok) {
document.location.href="http: // 127.0.0.1/index.php"; /* Si no hemos encontrado un referer bueno redirigimos al index */ 
}
</script>
Realmente estoy desesperado, espero que me puedan seguir ayudando...

Nota: los espacios en blanco dentro de las urls son porque no puedo aún postear links en el Foro. Y he comprobado que el navegador Opera en el que estoy realizando las pruebas tiene activadas las opciones de redirección y referencia.

Un saludo y gracias !!
  #10 (permalink)  
Antiguo 03/06/2007, 01:51
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

¿Ahora funciona como querías?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #11 (permalink)  
Antiguo 03/06/2007, 02:33
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

No, para nada... no sé ya qué hacer... estoy probando de todo y no lo logro....

Les necesito !!, gracias !!
  #12 (permalink)  
Antiguo 05/06/2007, 11:38
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Veaaamos.

He hecho 5 archivos: index.htm, redirector.htm, juegos_firefox.htm, juegos_netscape.htm, juegos_opera.htm.

index.htm
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">
</
head>

<
body>

EST&#196;S EN INDEX
<a href="redirector.htm?u=juegos_netscape.htm">juegos netscape</a>
<
a href="redirector.htm?u=juegos_firefox.htm">juegos firefox</a>
<
a href="redirector.htm?u=juegos_opera.htm">juegos opera</a>

<
script>

</script>

</body>
</html> 
redirector.htm
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">
</
head>

<
body>



<
script>

var 
adonde=window.location.href.split("u=")[1];
var 
m=document.referrer;
if( 
m.indexOf("juegos_")!=-)        //vengo de juegos_
    
self.location="index.htm";
else                                
//vengo de cualquier otro sitio
    
self.location=adonde;

</script>

</body>
</html> 
Y en los otros tres documentos lo que quieras, no necesitan de código para esta tarea.



Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #13 (permalink)  
Antiguo 05/06/2007, 14:34
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

La verdad es que si no lo veo no lo creo... en fin... es que me ha sorprendido todas las molestias que te has tomado tio !!... increible !!

Muchas gracias por ello !! Pero verán... el problema es que no me expliqué bien la primera vez... Veran, lo voy a intentar ahora... Todo lo que dije es válido, pero hay que añadir que en el inde.php principal, hay un solo botón con el nombre "Juegos". Es decir, que todos los usuarios (con independencia del navegador que usen) pinchan en el mismo sitio y son llevados a /juegos/juegos.php (ya que el contenido del apartado juegos se encuentra en una carpeta o directorio con esa misma denominación).

Entonces, en función de qué navegador usen y gracias al script que posteé la primera vez, son redireccionados o no al lugar idóneo (por ejemplo, para el caso problemático es: si usa Opera, pues al clickar en el botón del index.php principal, es llevado, como el resto, a /juegos/juegos.php , pero automática e instantáneamente redireccionado a /juegos/juegos_opera.php ).

Por tanto, nos encontramos con que el usuario de Opera, estando navegando en /juegos/juegos_opera.php , pues decide volver al apartado principal de la web (al index.php ; es decir, al lugar donde él hizo click en el botón de "Juegos") y resulta que, aquí viene el problema, al pulsar en el botón "Atrás" del navegador Opera, en vez de conseguir regresar a donde él desea (que es el index.php principal de la web), resulta que va a un lugar que él nunca observó (el cual es: /juegos/juegos.php ; y nunca se dió cuenta de estar allí, ya que fue rapidamente redireccionado gracias al citado script), lugar, además, se muestra 100% en blanco (sin contenido visible). Teniendo, entonces, que pulsar de nuevo sobre el botón "Atrás" de su Opera para así lograr volver al apartado principal de la web (al index.php donde pulsó el mencionado único botón de "Juegos").

En definitiva, espero haberme explicado mejor y desde ya les doy las gracias por haber leído esto. De veras tengo esperanza en que puedan ayudarme, pues no es algo a lo que no le haya echado muchas horas la verdad; y que ni aún así logro dar con la solución.

Muchas gracias por todo y un abrazo. ¡¡ Cuídense !!
  #14 (permalink)  
Antiguo 05/06/2007, 16:05
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

No, si yo lo entiendo... pero creo que la solución te la postee en el anterior mensaje ¿no? quiero decir, index.php sería index.htm, juegos.php sería redireccionador.htm, y los demás juegos_xxx.php pues da igual.

¿Así no se te soluciona? Porque si no pocas soluciones se me ocurren..
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #15 (permalink)  
Antiguo 05/06/2007, 16:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Es que no logro montar el sistema en el caso concreto, ya que hay un solo botón con el nombre "Juegos" en el index.php principal. Es decir, que todos los usuarios (con independencia del navegador que usen) pinchan en el mismo sitio y son llevados a /juegos/juegos.php Por tanto, no algo como esto:

Código:
<a href="redirector.htm?u=juegos_netscape.htm">juegos netscape</a>
<a href="redirector.htm?u=juegos_firefox.htm">juegos firefox</a>
<a href="redirector.htm?u=juegos_opera.htm">juegos opera</a>
Entonces, lo que yo digo es... ¿cómo quedaría el sistema de código teniendo en cuenta ese asunto?

Vamos, concrétamente; lo de "u=" ¿cómo sería entonces? ¿Y lo de "juegos_" ?? Por último, ¿a qué sería igual el self.location por favor?

Gracias nuevamente, un abrazo !!
  #16 (permalink)  
Antiguo 06/06/2007, 03:51
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

A ver. No sé cómo lo tienes en tu botón, porque no lo posteas, pero me supongo que tienes un código javascript que según el navegador te manda a
juegos/juegos.php?u=juegos_opera.php
o algo por el estilo.
Es que depende de cómo lo tengas, no lo sé. Esto es programación, en cada caso concreto cambia, pero la idea general es la misma. ¿Cómo lo tienes?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #17 (permalink)  
Antiguo 06/06/2007, 06:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
Re: If (navigator ... window.location.href ...

Hola nuevamente, gracias por seguir respondiendo.

Verán, en el index.php (del apartado principal de la web), pues el botón que se encarga de llevar a los usuarios hacia la sección de juegos es este:

Código:
<div class="games1">
<a class="games2" href="juegos/juegos.php" background:url(games.jpg);float:left;display:block; width:87px; height:33px;></a>
</div>
Espero sirva, hasta luego y muchas gracias !!

Última edición por bodyboard_jerez; 07/06/2007 a las 06:12
  #18 (permalink)  
Antiguo 06/06/2007, 16:36
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Pues yo ya no sé en qué más ayudarte... estamos dando vueltas a lo mismo... es exactamente como te he posteado yo, en juegos.php controlas el redireccionamiento y también miras si se ha venido de juegos_xxxx.php.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #19 (permalink)  
Antiguo 07/06/2007, 01:58
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: If (navigator ... window.location.href ...

Hola, se me ocurre que el redireccionado lo puedes hacer desde el mismo index.php sin necesidad de tener un redireccionador.php aparte.
Al pulsar el boton juegos se ejecuta la funcion de redireccionado y se acabo.

<input onclick="redir()">

y en el script el codigo que tenias al principio que funcionaba bien, no?

<script language="JavaScript">

function redir()
{
if(navigator.userAgent.indexOf("Firefox")!=-1) {window.location.href="juegos_firefox.php"}

else if(navigator.appName == "Netscape"){window.location.href="juegos_netsc ape. php"}

else if(navigator.userAgent.indexOf("Opera")!=-1){window.location.href="juegos_opera.php"};
}
</script>

Salud os
  #20 (permalink)  
Antiguo 07/06/2007, 06:12
 
Fecha de Ingreso: mayo-2007
Mensajes: 41
Antigüedad: 17 años
Puntos: 0
De acuerdo Re: If (navigator ... window.location.href ...

¡¡ EL TEMA ESTÁ SOLUCIONADO 100% AMIGOS !!

¡¡¡ Muuuchas gracias por la colaboración de todos quienes se han interesado en el tema !!! En especial, por supuesto, a "derkenuke" y a "programeitor".

Gracias a ellos he llegado a la solución definitiva del problema. Les explico brevemente por si hay alguien que le puede llegar a servir el tema:

En el <head> del archivo index.php principal, coloqué el script siguiente:

Código:
<script language="JavaScript1.2">
function redir()
{

if(navigator.userAgent.indexOf("Firefox")!=-1) {window.location.href="juegos/juegos_firefox.php"}

else if(navigator.appName == "Netscape"){window.location.href="juegos/juegos_netscape.php"}

else if(navigator.userAgent.indexOf("Opera")!=-1){window.location.href="juegos/juegos_opera.php"}

else {window.location.href="juegos/juegos.php"};

}
</script>
Y finalmente, en la parte correspondiente del <body> , pues dejé esto otro:

Código:
<div class="games1"><a class="games2" onclick="redir()" style="background:url(games.jpg); float:left; display:block; width:87px; height:33px;"></a>
</div>
Conclusión: tal como apuntó "programeitor", el redireccionado se hace desde el mismo index.php sin necesidad de tener un redireccionador.php aparte.
Al pulsar el botón "juegos" (que abrán comprobado no es en sí, un botón, sino una imagen que la apariencia que tiene es de botón web....) se ejecuta la función de redireccionado y listo !! Todo ello, evitando el problema que al principio del post comenté les ocurre a los users del navegador Opera.

Nota: funciona perfecto en IE (versiones 6 y 7), Mozilla Firefox, Netscape y Opera.

Bueno, de veras que estoy muy contento y agradecido por toda la colaboración. Cosas de estas ayudan a seguir animado con la creación web y a lograr cosas que seguro no se conseguirían individualmente.

¡¡ Felicitaciones por este Foro y por el gran nivel (tanto a nivel personal, como profesional) de sus miembros !! ¡¡ Un abrazo y hasta pronto !!
  #21 (permalink)  
Antiguo 07/06/2007, 08:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: If (navigator ... window.location.href ...

Buf! Lo que nos ha costado.. y al final sólo teníamos que replantear el tema... Por cierto el redireccionamiento en juegos/juegos.php lo tenías con javascript no? Es que pensé que era necesario para hacer alguna operación en php, un contador o un registro.. por eso no se me ocurrió eliminarlo. Además era tan insistente la duda que pensé que ya se te había ocurrido.

Me alegro de que por fin lo tengas.
Saludos.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #22 (permalink)  
Antiguo 07/06/2007, 12:14
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Re: If (navigator ... window.location.href ...

Si ,amigos foreros, a veces es mejor empezar desde el principio. Yo estube dando repasos al tema pero no sabia muy bien que es lo que estaba pasando... asi que opte por eliminar obstaculos y redireccionar direcamente.

Parece que ha sido una solucion, pero ahi queda la propuesta de derkenuke que parece no estaba mal. A veces tambien pienso que PHP puede complicar las cosas a SCRIPT, pero haciendolo correctamente parece que todo anda a la perfeccion.

Salud os
  #23 (permalink)  
Antiguo 05/07/2007, 11:15
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Re: If (navigator ... window.location.href ...

Me ha servido mucho este tema del foro.
Estaba igualmente desesperado que no me funcionaba el redireccionamiento.

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 00:33.