Foros del Web » Programando para Internet » Javascript »

Redireccion a dos paginas dependiendo de donde provenga

Estas en el tema de Redireccion a dos paginas dependiendo de donde provenga en el foro de Javascript en Foros del Web. Hola, la verdad es que estoy exprimiendo al maximo con este tema pero no encuentro solucion ni la forma correcta de buscar el ejemplo. Estoy ...
  #1 (permalink)  
Antiguo 23/03/2004, 10:05
Avatar de v0rt3x  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona - España
Mensajes: 28
Antigüedad: 20 años, 4 meses
Puntos: 0
Redireccion a dos paginas dependiendo de donde provenga

Hola, la verdad es que estoy exprimiendo al maximo con este tema pero no encuentro solucion ni la forma correcta de buscar el ejemplo. Estoy creando un carrito de la compra y la duda que se me plante a ahora es la siguiente:

Tengo tres catalogos con los nombres:

-catalogo1.html
-catalogo2.html
-catalogo3.html

A la hora de ir al formulario desde cualquiera de ellos se debe pasar por un indice unico que esta compuesto por enlaces a carritos, de tal manera que:

-indice_catalogos.html

Sería el indice y:

-carrito1.html
-carrito2.html
-carrito3.html

Serían los carritos correspondientes a los catalogos. La funcion que necesito es que desde catalogo1.html, por ejemplo, pueda ir a carrito1.html pasando por el indice_catalogos.html, pero sin que tenga que pulsar sobre los enlaces manualmente, espero explicarme bien porque tengo un cacao mental muy grande.

A ver si alguien me pudiese ayudar se lo agradecería muchos. Saludos.
  #2 (permalink)  
Antiguo 24/03/2004, 04:40
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
No, no te has explicado muy bien

Bueno, si lo que quieres es acceder desde cada catalogo a su correspondiente carrito pasando por indice catalogo automaticamente, no te has explicado tan mal.

Primero quiero advertirte que yo no se mucho de forms.

De todas form as te cuento lo que se me ha ocurrido.

Imagino que desde cada catalogo se abre una pagina nueva con indice catalogo, si no es así se puede hacer asi:

<form name="form1" method="post" action="indiceCatalogos.htm" target="blank">

despues en indiceCatalogos.htm en el evento onload llamamos a la funcion a una funcion que dependiendo del titulo de la ventana que lo haya abierto vaya a un carrito o a otro.

var carrito
if (window.opener.document.title=="catalogo1")carrito ="carrito1.htm"
if (window.opener.document.title=="catalogo2") carrito="carrito2.htm"
if (window.opener.document.title=="catalogo3")carrito ="carrito3.htm"
...
...
vamos al carrito adecuado, en una nueva pagina:

window.open.....

o en la misma

window.location.href=carrito


Es una forma, pero te digo que yo no controlo de forms.

Suerte

rsalvadores
  #3 (permalink)  
Antiguo 24/03/2004, 06:25
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Hola, bueno, solo para aclarar un poco las cosas, el esquema de tu pregunta es el siguiente ¿no?

3 catálogos --> índice_catalogos --> 3 carritos

Si no has de pulsar en los enlaces, es que todo el trabajo lo hará el navegador o el servidor ¿cierto?

si es solo estética, y el trabajo lo hará el navegador, te basta con colocar un refresh en la página.

Si el trabajo lo hará el servidor, seguramente te puedas saltar el paso intermedio ¿no?

A lo mejor nos puedes aclarar que ocurre en la mitad, porque eso de tener que pasar por una página intermedia en la que no hay que hacer clics, es raro.

A menos que sa la típica página de "ahora no pulse nada o le cargaremos el doble a su tarjeta de crédito", pero esa es una página que debería estar después de los carritos y no antes, así que no debe ser eso...

Bueno, ya nos dirás...

Felicidad
__________________
¡ hey, hou, hou, hey !
  #4 (permalink)  
Antiguo 24/03/2004, 11:31
Avatar de v0rt3x  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona - España
Mensajes: 28
Antigüedad: 20 años, 4 meses
Puntos: 0
No me aclaro :((((

Hola soy el de antes, he entendido perfectamente lo que planteais pero creo que me falta alguna funcion. He subido los archivos a un server para que le echeis un vistazo si quereis.

Añado el codigo a main_catalgos.html

if (window.opener.document.title=="catalogo1")carrito ="carrito1.html"
if (window.opener.document.title=="catalogo2")carrito ="carrito2.html"
if (window.opener.document.title=="catalogo3")carrito ="carrito3.html"


Esto no me ha hecho nada. Le he dado el título adecuado a los catalogos (catalogo1 y catalogo2 ) y tampoco hace nada, no me dirije.

Respecto a lo que comentabas del OnLoad la verdad es que no se donde tengo que meterlo ni cual sería la línea exactamente.

Os agradecería enormemente de nuevo que echaseis un vistazo y si sabeis me dijeseis que hago mal porque no me aclaro.

Los archivos que he subido son:

catalogo1.html
catalogo2.html
main_catalogos.html
carrito1.html
carrito2.html

estan alojados en:

http://www.aldeavirtual.com/cultura/...catalogo1.html

Gracias :)

P.D Teoricamente todo se muestra a pantalla completa cuya funcion ya es invocada al principio de la web y todo debe visualizarse en una misma página.

Última edición por v0rt3x; 24/03/2004 a las 11:34
  #5 (permalink)  
Antiguo 25/03/2004, 05:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
En la pagina intermedia pon:

<html>
<head>
<title>Catalogo indice</title>
</head>
<script>
function ini(){
if (window.opener.document.title=="catalogo1")carrito ="carrito1.html"
if (window.opener.document.title=="catalogo2")carrito ="carrito2.html"
if (window.opener.document.title=="catalogo3")carrito ="carrito3.html"
window.location.href=carrito
}
</script>
<body bgcolor="#FFFFFF" text="#000000" onload="Javascript:ini()">
Lo que tu quieras
</body>
</html>

Pero para que funcione este metodo, debes abrir esta pagina en una ventana nueva, como te comente en la primera respuesta:

<form name="form1" method="post" action="indiceCatalogos.htm" target="blank">

ya que estas llamando con "window.opener"

Suerte

rsalvadores
  #6 (permalink)  
Antiguo 25/03/2004, 05:35
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Bueno, ya tienes el código si has de usar ventanas nuevas ¿eso te sirve?

Por cierto, el onload va en el body, de esta manera:

<body onload="javascript:tu_funtion()">

Otra forma, que creo es la mejor si no usas popups, es que utilices el document.referrer, los pasos a seguit para la función, serían más o menos así

1. mete en una variable el documento desde el que vienen, para eso puedes usar algo como: var pag_anterior = document.referrer;
2. luego usa los métodos del objeto string para extraer solo el nombre de la página
3. crea un switch que dependiendo del valor obtenido antes, redirija a la siguiente página mediante un document.location

Creo que con eso te debería bastar, es bastante simple y eficiente.

Por cierto, dicha función se activaría en el onload de la página intermedia que mencionabas. Esta podría tener un texto del tipo, "en un instanate será redirigido a su carrito de la compra".

Suerte

Felicidad
__________________
¡ hey, hou, hou, hey !
  #7 (permalink)  
Antiguo 25/03/2004, 10:42
Avatar de v0rt3x  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona - España
Mensajes: 28
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias por las respuestas.

Sólo una duda más, comentais que:

"Pero para que funcione este metodo, debes abrir esta pagina en una ventana nueva, ..."

La página está en pantalla completa. ¿ Es posible que esto funcione en pantalla completa ?

Última edición por v0rt3x; 26/03/2004 a las 11:36
  #8 (permalink)  
Antiguo 25/03/2004, 11:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 40
Antigüedad: 20 años, 6 meses
Puntos: 0
Creo que la solución de PatomaS es la mas adecuada, pero si quieres usar la otra, cambia la funcion ini por:

function ini(){
var pag=window.opener.document.title
var num = pag.substring(pag.length-1, pag.length);
window.opener.location.href="carrito"+num+".html"
self.close()
}

Segun recomendaciones , he utilizado los metodos del objeto string, para pulirlo un poco.



rsalvadores
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 04:13.