El script del archivo js de mi página principal:
var PopupConnect = window.open("http://localhost:8080"); var popup_function = PopupConnect.CreateText();Mi script de archivo js de página emergente:
function CreateText() { var text = "random text"; return json({ result: text }) }Esta línea js en la página principal funciona bien, lo que activa una nueva pestaña en el navegador:
PopupConnect = window.openEl error que recibo está en la línea siguiente:
Uncaught TypeError: PopupConnect.CreateText is not a function¿Cómo puedo llamar a la función js en la página secundaria desde la página principal js correctamente? ¿Es eso posible? ¿Y cómo puedo devolver el resultado de la función CreateText a la página principal js?
NOTA: La página principal se ejecuta en el servidor Python y la página emergente secundaria se ejecuta en el servidor Node.js. Por supuesto, ambas páginas se abren en el mismo navegador.
Algunas personas podrían sugerir usar el método localStorage.setItem y localStorage.getItem, pero no funciona, las dos páginas se ejecutan en diferentes puertos de host local y, por supuesto, en producción se ejecutarán en diferentes dominios. Para su información, ya probé este método y no funcionó.
ACTUALIZAR:
** Terminé usando window.postMessage en la página principal y puse addEventListener en la ventana emergente secundaria , por lo que una vez que recibe el mensaje, ejecuta la función js. Ahora el problema al que me enfrento es con el tiempo de las cosas .
¿Cómo puedo insertar un retraso después de que se llame a window.open para que la página secundaria tenga tiempo de cargarse por completo antes de que la página principal ejecute window.postMessage? Sé que hay algo llamado 'esperar', pero supongo que esto es para que JS se use como backend, no como frontend. ¿Cuál es el mejor enfoque para este problema de tiempo?**
Puedes probarlo con Window.postMessage . espero ayudarte
Cree un detector de eventos en la página principal y la página secundaria.
Enviar: la página principal envía -----mensaje----> a la página secundaria (escucha de eventos) Responder: la página secundaria envía -----mensaje----> a la página principal (escucha de eventos)
Actualización : sobre el tiempo de timming de la nueva página: puede enviar un mensaje desde la nueva página a la página principal cuando esté listo