断开弹出窗口的当前URL并更改为新URL

时间:2017-04-03 14:03:08

标签: javascript socket.io popup window.open

我有一个(父)页面,可以通过

打开弹出窗口
popup = window.open("https://localhost:3000/#/new", "popup", "status=1, location=1, width=1000, height=1200");

我也在后端实现了(即www):

io.sockets.on('connection', function (socket) {
  console.log("LOG: just connected: " + socket.id);
  socket.emit('id', socket.id);
  socket.on('disconnect', function () {
    console.log("LOG: just disconnected: " + socket.id)
  })
})

结果,手动关闭弹出窗口显示LOG: just disconnected: ...

父页面有时会想要更改弹出窗口的URL。如果我使用popup.location.href = newUrl,弹出窗口会加载新页面,但它不会断开以前的URL;显示没有LOG: just disconnected: ...。当我手动关闭弹出窗口时,它会显示SEVERAL套接字同时断开连接。

我希望父页面能够断开弹出窗口的当前网址并更改为新网址,同时保持弹出窗口打开。因为关闭并重新打开弹出窗口会改变其位置/大小,这不是我想要的。

有谁知道如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

父页面可以向子页面发送close消息(例如,通过postMessage)。然后,在子页面的一侧,它可以强制断开disconnect()

参考文献:12