javascript - 重定向后弹出窗口上的Javascript事件监听器
问题描述
我有以下代码,它创建一个弹出窗口并向来自该窗口的消息添加一个事件侦听器:
let popupWindow = parent.window.open('/popup/' + encodeURIComponent(url), "popupwindow", "width=800, height=1000");
if (popupWindow.addEventListener) {
popupWindow.addEventListener('message', (result) => {
console.log(result);
if(result.data.success){
this.orderCreated.emit(data);
this.ShowOrderCreated();
popupWindow.close();
}
if(result.data.success == false){
popupWindow.close();
}
});
}
这有效,因为我在进入该窗口时执行以下操作:
window.parent.postMessage({windowparent: true}, '*');
然后由初始窗口的控制台接收。然而,在某些时候,弹出窗口会改变它的hrefwindow.location.href
弹出窗口重定向到的 url 仍然在同一个域中。但是,当尝试从新位置触发 postMessage 时,它不再被创建弹出窗口的窗口拾取。
有没有办法解决这个问题?
解决方案
推荐阅读
- angular - 随机延迟的角度动画交错
- android - Android - 抛出运行时异常不会在开发人员崩溃控制台中显示消息?
- machine-learning - 是否可以使用预置模型和现有词汇 + 新人声进行文本分类?
- python - Pyomo:具有多个单独值的域集的变量
- abap - LOOP 与并行游标 LOOP 性能?
- web - 有谁知道如何通过在 python 中使用 selenium 进行网络抓取来解决 reCAPTCHA v2?
- typescript - 电子遥控器未使用 enableremotemodule = true 定义
- javascript - 我们可以让 2 个反应本机应用程序与本地存储的同一个数据库/文件进行对话,而无需使用 firebase
- javascript - 对 React 执行函数的结果显示不正确
- python - BeautifulSoup - 确实是刮板问题