Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
No se puede obtener la referencia a una página de otra

Estoy trabajando en una aplicación web que debe tener dos partes. El uno es un controlador y el otro es una pantalla. Algo así como Google Slides en modo presentación. El controlador tiene un botón para iniciar la pantalla:

 <script language="JavaScript"> function OpenMain() { var MainPage = window.open("TheUltraSignalLite.html"); TimerIMG = MainPage.document.getElementById("TimerIMG"); TimerIMG.src = "TM-Full-Blue.jpg"; } </Script>

La llamada a window.open parece devolver un valor nulo. He probado Chrome, Edge, Firefox y Opera y todos tienen el resultado. Todos estos son archivos locales por ahora, pero podría instalarlos en un servidor web algún día. He visto algunas respuestas que quieren que desactives la seguridad, pero no puedo pedirles a todos los que usan esta aplicación que desactiven la seguridad. ¿Cómo obtengo una referencia válida a la ventana de visualización?

Edición 1: Sí, window.open desde el disco local provoca una restricción de CORS. Intenté esto donde ambos archivos están en el mismo depósito de AWS S3, por lo que el CORS no debería ser un problema. Pero todavía obtengo un valor nulo en la ventana. Si puse un punto de interrupción en la primera línea, entonces todo funcionó. Si divido el código abierto y el resto del código en dos funciones con dos botones, funciona. Entonces parece que tengo que encontrar una manera de ejecutar la apertura de forma asíncrona.

Editar 2 Mi solución para mantenerlo simple fue poner window.open en el evento OnLoad. Esto abre la ventana secundaria y permite que se represente por completo y el valor de MainPage está listo para usar. (Cambié MainPage a una variable global). Todavía tengo que ejecutarlo desde algún tipo de servidor web, en lugar de un archivo loacl, pero eso no es gran cosa.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Si no se le permite acceder al contenido de la nueva ventana, entonces el problema que está encontrando es una función de seguridad básica de los navegadores web. Citando mdn :

La referencia devuelta se puede usar para acceder a las propiedades y métodos de la nueva ventana, siempre que cumpla con los requisitos de seguridad de la política del mismo origen.

Para leer más sobre la política del mismo origen

Si su nueva ventana respeta la política del mismo origen, puede acceder al contenido de la nueva ventana, por ejemplo:

 // Open index.html from the current origin const newWindow = window.open('index.html') const h1 = newWindow.document.querySelector('h1')

Si desea evitar pedir permiso a los usuarios para las ventanas emergentes, entonces probablemente debería usar un enlace en lugar de una ventana emergente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda