我如何在父页面js和子弹出窗口js之间传递值?



我的父页面js文件脚本:

var PopupConnect = window.open("http://localhost:8080");
var popup_function = PopupConnect.CreateText();

我的弹出页面js文件脚本:

function CreateText() {
var text = "random text";
return json({
result: text
})
}

父页面中的js行运行良好,在浏览器中触发一个新选项卡:

PopupConnect = window.open

我得到的错误在它后面的那行:

Uncaught TypeError: PopupConnect.CreateText is not a function

如何从父页面js正确调用子页面的js函数?这可能吗?我怎么能把结果从CreateText函数传递到父页面js?

注意:父页面运行在Python服务器&子弹出页面运行在Node.js服务器上。当然,这两个页面是在同一个浏览器中打开的。

有些人可能会建议使用localStorage。setItem和localStorage。getItem方法,但它不起作用,这两个页面在不同的本地主机端口上运行,当然在生产中它们将在不同的域上运行。仅供参考,我已经尝试过这种方法,但它不起作用。

更新:

**我最终使用window.postMessage在父页&已经把addEventListener在子弹出,所以一旦它收到消息,它运行js函数。现在我面临的问题是计时

我如何在window.open被调用后插入延迟,以便子页面有时间在父页面运行window.postMessage之前完全加载?我知道有一种叫做"等待"的东西,但我认为这是为JS被用作后端而不是前端?解决这个时间问题的最佳方法是什么?* *

您可以在windows中尝试。postMessage。希望对你有所帮助

在父页面创建事件监听器&子页面。

发送:父页面发送-----消息---->到子页(事件侦听器)回答:子页面发送-----消息---->到父页(事件监听器)

:关于timmingnew page onload:当准备就绪时,您可以从新页面向父页面发送消息

最新更新