Ayuda javascript, realizar funcion en un popup con datos de la padre

Doromil

Hola, pues necesito ayuda porque soy incapaz de hacer que al abrir una pagina nueva esta contenga una funcion que use los datos de los Array de la anterior.

O sea que yo por ejemplo voy metiendo nombres en un Array y quiero que al darle a un boton se me abra una ventana con un for in que me iria escribiendo todos los nombres que yo añadi en ese array.

Troyer

Que tal si subes lo que has probado a https://jsfiddle.net/ y te podemos ayudar ?

1 respuesta
Doromil

#2 https://jsfiddle.net/3d4s44of/

Ahora mismo lo unico que me hace es abrirme la ventana en blanco solo y yo lo que quiero son los resultados que daria hacer la funcion resul()

Gracias

PD: Es un ejercicio para ir aprendiendo no es algo de utilidad real.

2 respuestas
Wasd

#3 Si quieres pasar parámetros entre requests sin código server-side tendrás que enviarlos a través de la URL o bien almacenarlo en una cookie, de manera que en la primera ventana las almacenes y en la segunda las recojas.

1 respuesta
Doromil

#4 Y alguna ayuda para hacer eso? xD

Zerokkk

#3 Para pasar los parámetros entre páginas puedes escoger una de las siguientes opciones:

  • Meterlos en una request HTTP, ya sea GET o POST.
  • Usar LocalStorage (mejor que las cookies) para guardar los valores y luego recogerlos en la segunda página.

Igualmente, veo un código JS muy sucio eh, te voy a dar unas pequeñas directrices para mejorarlo:

  • No uses variables globales, o por lo menos las mínimas posibles.
  • Usa "let" en lugar de "var", que los navegadores actuales ya soportan ES6.
  • Separa un poco más el código en tus asignaciones. Hay líneas que se hacen difíciles de leer así.
  • Cuando hagas method chaining con más de dos métodos, mételos en distintas líneas. Ejemplo:

let res = metodoUno().metodoDos().metodoTres()

cámbialo a:

let res = metodoUno()
.metodoDos()
.MetodoTres()
(aquí aparece mal, pero vamos, que las llamadas a los otros métodos deben indentarse hasta estar debajo de la llamada del método inicial)

  • Jamás uses "new Array()". De hecho, la palabra "new" en JS sólo se debería usar para instanciar clases que tú mismo hayas creado. Es mejor hacer lo siguiente:

let miArray = []

Saludos.

1 respuesta
Doromil

#6 Muchas gracias :)

Usuarios habituales

  • Doromil
  • Zerokkk
  • Wasd
  • Troyer