abrir ventana en la misma pestaña que parent, con variables de parent

Actualmente tengo un botón que abre una nueva ventana en una nueva pestaña usando window.open ("newpage.html") ... Utilizo childVar = window.opener.parentGlobalVar en la ventana secundaria para recuperar los valores de algunas variables globales desde la ventana principal. Ahora me han pedido que abra la nueva ventana en la misma pestaña que el padre, e incluyo un botón 'volver' para volver a la ventana principal.

Hasta el momento, mis intentos de hacer esto no han funcionado. He intentado usar _top o _self como argumentos para window.open , window.location , y location.href ... todos los cuales no pueden recuperar las variables necesarias del padre; Supongo que estos valores se borran cuando abro una nueva página en la misma pestaña. ¿Hay alguna manera de que pueda almacenar estos valores (del lado del cliente) o pasarlos a la nueva ventana, si se abre en la misma pestaña?

0
¿Cómo es eso un comentario útil? concedido que debería haber dicho 'nueva página html' en lugar de 'nueva ventana' ... pero esto no se menciona en este comentario inútil.
agregado el autor JasonBK, fuente
¿es esa la razón de? b/c cuando sobrevivo la flecha hacia arriba junto a un comentario, el texto emergente dice 'este comentario agrega algo útil a la publicación'. ¿Ves algo más?
agregado el autor JasonBK, fuente
nueva ventana en la misma pestaña? urm
agregado el autor Harsha Venkatram, fuente
¡Supongo que realmente no tienes idea de por qué hay un comentario votado! También se sube la apuesta cuando la persona que está votando también tiene el mismo pensamiento en mente. Tiene sentido ?
agregado el autor Harsha Venkatram, fuente

3 Respuestas

No puedes hacer eso.

Una vez que su ventana (página) ha sido descargada (cuando la pestaña navega hacia la nueva página), ya no existe.

En cambio, puede pasar los datos en la cadena de consulta.

0
agregado
Aprecio los pensamientos, pero es 'no se puede hacer eso' realmente cierto, si la respuesta localStorage a continuación funciona? (como parece, para mí, hasta ahora)
agregado el autor JasonBK, fuente
sí, pero pregunté "¿Hay alguna forma de que pueda almacenar estos valores (del lado del cliente) o pasarlos a la nueva ventana, si se abre en la misma pestaña?" ... pero agradezco su respuesta, gracias.
agregado el autor JasonBK, fuente
El identificador de fragmento podría ser preferible a la cadena de consulta, ya que no se enviará al servidor
agregado el autor Dagg Nabbit, fuente
@JasonBK: Quiero decir que no puedes acceder al contexto de variable y ejecución directamente. Puede guardarlos en otro lugar, ya sea en la cadena de consulta, fragmento, cookie o almacenamiento local.
agregado el autor SLaks, fuente

Podría probar el método window.close ("newpage.html") ... esto cerraría el "newpage.html" (botón de retroceso) y volvería a la página original (entonces simplemente harían clic en el enlace solían abrir el "newpage.html" si es necesario ver la página o volver a la pestaña.
El código sería similar a:


Click to close and return to last page.

<button onclick="myFunction()">close</button> <script> function myFunction() { window.close("newpage.html"); } </script>
0
agregado
No veo cómo esto ayudaría a pasar datos del padre a la página html del niño.
agregado el autor JasonBK, fuente

Puede usar localStorage para almacenar datos del lado del cliente.

localStorage.setItem("bar", foo);
var x = localStorage.getItem("bar");

Works kind of like cookies but there are also risks involved. I'd advice you to research it a little, starting for example here

Básicamente puede almacenar todo lo que contiene, por ejemplo, su URL de referencia.

EDIT @comment:

para borrar todo el almacenamiento que puede usar:

localStorage.clear();

y para borrar un cierto par clave/valor: localStorage.removeItem (key) en términos de compatibilidad: caniuse.com es bastante decente.

0
agregado
esto parece funcionar para mí hasta el momento (prueba en IE9, Chrome 31, FF 26) ... pero tendré que verificar en algunos navegadores más antiguos, y también cómo borrar solo los elementos almacenados desde mi URL y no otros. ..¡Gracias!
agregado el autor JasonBK, fuente
JavaScript - Comunidad española
JavaScript - Comunidad española
4 de los participantes

En este grupo hablamos de JavaScript. Partner: es.switch-case.com