Les comento mi problema.
Resulta que estoy creando esta página con carrito de compras que se abre al hacer click ,y genera una nueva ventana con el carrito.
Pero lo que quiero lograr es que el objeto "ventana" siga estando accesible para las páginas a las que me dirijo desde la principal.
O sea,en la ventana principal,hago click en comprar y se abre el popup con el carrito.
Desde la ventana principal hago click en un enlace a otra página del mismo dominio (localhost) y quiero que esa página destino pueda acceder y manipular la ventana "carrito".He tratado de pasar la referencia del objeto "ventana" (que es el nombre del carrito de compras) a través de la url añadiendo al final el signo "?" y una variable que indica que se pasó una referencia que va a ser leída por una función javascript en la página destino del enlace.
Ya probé con eval para ejecutar esa referencia en la pagina destino,probé con escape() por si acaso la referencia contuviera espacios,leyendo la url como si se tratara de una variable enviada con el método get,y nada.
Les paso el código para que me puedan guiar.
Desde ya les agradezco.
Código fuente de "funciones_web.js":
Código:
Código fuente de la página que abre la ventana carrito y que quiero que le pase la referencia a otra página que es destino de las imágenes.function desplegar(seccion) { if (seccion=="Belleza_interior") document.getElementById(seccion).style="position:absolute; display:block ; top:40px; left:35%;" ; else if (seccion=="reino_beauty") document.getElementById(seccion).style="position:absolute; display:block ; top:40px; left:70%;" ; else if (seccion=="fragancias") document.getElementById(seccion).style="position:absolute; display:block ; top:40px; left:60%;" ; else document.getElementById(seccion).style="position:absolute; display:block ; top:40px;" ; } function enrollar(seccion) { document.getElementById(seccion).style="display:none"; } function crearelemento(str) { var elemento = document.createElement("p"); var texto = document.createTextNode(str); elemento.appendChild(texto); return elemento; } ventana = null; function cargar_chango(nodo,prod){ if ( ventana == null ) { ventana = open("","Chango","scrolling=yes",false); ventana.document.write("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'><br>"); ventana.document.write("<html><head><meta http-equiv='content-type' content='text/html; charset=ISO-8859-1' /><style type='text/css' >#marco { width:25%; margin: 0 auto; text-align:center;} a:visited { color:blue; }</style></head><body><div id='marco' ><a href='#' onclick='javascript:opener.ventana = null;self.close();'>Cerrar ventana.</a></div></body></html>"); var producto = crearelemento(prod); var ultimo = ventana.document.getElementById("marco").lastChild; ventana.document.getElementById(nodo).insertBefore(producto,ultimo) } else { ventana.focus(); var producto = crearelemento(prod); var ultimo = ventana.document.getElementById("marco").lastChild; ventana.document.getElementById(nodo).insertBefore(producto,ultimo); } } function direccion(dir) { if ( ventana != null ) { var referencia = "referencia=" + ventana; dir += "?" + referencia; window.location = dir; return false; } return true; } function capturar() { if ( window.location.href.indexOf("referencia") ) { var indice = location.href.indexOf("referencia=") + 11; var referencia = eval(location.href.slice(indice)); ventana = referencia; } }
Código:
<!DOCTYPE html> <html> <head> <title>Ventas Reino.</title> <link rel="stylesheet" type="text/css" href="estilos_web.css" /> <script type="text/javascript" src="funciones_web.js"> </script> </head> <body> <br> <div id="pagina"> <div id="cabecera" > <a href="#" onmouseover="desplegar('menu_capilares');" onmouseout="enrollar('menu_capilares');">Capilares</a> <a href="#" onmouseover="desplegar('cuidado_facial');" onmouseout="enrollar('cuidado_facial');">Cuidado facial</a> <a href="#" onmouseover="desplegar('cuidado_corporal');" onmouseout="enrollar('cuidado_corporal');">Cuidado corporal</a> <a href="#" >Chicos</a> <a href="#" onmouseover="desplegar('Belleza_interior');" onmouseout="enrollar('Belleza_interior');" >Belleza interior</a> <a href="#" onmouseover="desplegar('fragancias');" onmouseout="enrollar('fragancias');" >Fragancias</a> <a href="#" >Aromas</a> <a href="#" onmouseover="desplegar('reino_beauty');" onmouseout="enrollar('reino_beauty');" >Reino beauty</a> <div id="menu_capilares" onmouseover="desplegar('menu_capilares');" onmouseout="enrollar('menu_capilares');"> <a href="Capilares/Almendras/bano_de_crema_con_jojoba_y_almendras_DA101.html" > Línea almendras</a> <a href="Capilares/Bamboo/shampoo_bamboo_ultrahidratante_CI102.html" > Línea bamboo</a> <a href="Capilares/Hair_solutions/shampoo_de_aminoacidos_HS103.html" > Línea hair solutions</a> <a href="Capilares/Henna/shampoo_henna_OC106.html" > Línea henna</a> <a href="Capilares/Lino/shampoo_con_extracto_de_semillas_de_lino_LN100.html" > Línea lino</a> <a href="Capilares/Ortiga/locion_tonica_anticaida_del_cabello_OC102.html" > Línea ortiga</a> </div> <div id="cuidado_facial" onmouseover="desplegar('cuidado_facial')" onmouseout="enrollar('cuidado_facial');"> <a href="Lifting_hidratante.html" >Lifting hidratante</a> <a href="Antioxidante.html" >Antioxidante</a> <a href="Phytoactiva.html" >Phytoactiva</a> <a href="Rejuvalene.html" >Rejuvalene</a> <a href="Nectar.html" >Nectar</a> <a href="Collagenesse.html" >Collagenesse</a> <a href="Tratamiento.html" >Tratamiento</a><br> <a href="Dyamante_cell.html" >Dyamante cell</a> <a href="Abyssine.html" >Abyssine</a> <a href="Hidracalme.html" >Hidracalme</a> <a href="Time_release.html" >Time release</a> <a href="H20_termal.html" >H20 termal</a> <a href="Acai.html" >Açai</a> <a href="Spa.html" >Spa</a> </div> <div id="cuidado_corporal" onmouseover="desplegar('cuidado_corporal');" onmouseout="enrollar('cuidado_corporal');" > <a href="Citrus.html" >Citrus</a> <a href="Golden_sun.html" >Golden sun</a> <a href="Mantecas_corporales.html" >Mantecas corporales</a> <a href="Seda.html" >Seda</a> <a href="Top_modeling.html" >Top modeling</a> <a href="Triple_accion.html" >Triple acción</a> <a href="Camila.html" >Camila</a> <a href="Propoleos_b.html" >Propóleos b</a><br> <a href="Blueberry.html" >Blueberry</a> <a href="Eucalyptus.html" >Eucalyptus</a> <a href="Beauty_feet.html" >Beauty feet</a> </div> <div id="reino_beauty" onmouseover="desplegar('reino_beauty');" onmouseout="enrollar('reino_beauty');"> <a href="Ojos.html" >Ojos</a> <a href="Labios.html" >Labios</a> <a href="Rostro.html" >Rostro</a> <a href="Manos.html" >Manos</a> </div> <div id="fragancias" onmouseover="desplegar('fragancias');" onmouseout="enrollar('fragancias');"> <a href="Femeninas.html" >Femeninas</a> <a href="Masculinas.html" >Masculinas</a> </div> <div id="Belleza_interior" onmouseover="desplegar('Belleza_interior');" onmouseout="enrollar('Belleza_interior');" > <a href="Eco_reino.html" >Eco reino</a> <a href="Infusiones.html" >Infusiones</a> <a href="Propoleos_plus.html" >Propóleos plus</a> <a href="Suplementos.html" >Suplementos</a> </div> </div> <div id="productos" > <div id="imagenes" > <a href="index.html" onclick="return direccion('index.html');" ><img src="Capilares/Almendras/da101.jpg" alt="Bańo de crema con jojoba y almendras."></a> <a href="Capilares/Almendras/acondicionador_de_almendras_DA103.html" onclick="return direccion('Capilares/Almendras/acondicionador_de_almendras_DA103.html');"><img src="Capilares/Almendras/da103.jpg" alt="Acondicionador de almendras."></a> </div> <div id="contenido" > <p>Capilares > ALMENDRAS</p> <p>BAÑO DE CREMA CON JOJOBA Y ALMENDRAS</p> <p>Su fórmula enriquecida con aceite de almendras dulces y aceite de jojoba penetra en la fibra capilar, humectándola. Así, nutre, repara e hidrata profundamente el cabello, especialmente en las zonas castigadas. Devuelve el nivel de hidratación ideal, dejando el cabello suave, brillante y protegido. Apto para todo tipo de cabellos dañados por agresiones ambientales o químicas.</p> <p>COD: DA101 | 200g</p> <p>$ 69.9</p> <a href="#" id="comprar" onclick="cargar_chango('marco','Baño de crema con jojoba y almendras.');" >Comprar</a> </div> </div> </div> </body> </html>