断开当前 url 的弹出窗口并更改为新的 url
Disconnect the current url of a popup and change to a new url
我有一个(父)页面,可以通过
打开一个弹出窗口
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: ...
。当我手动关闭弹出窗口时,它显示同时断开了几个套接字。
我希望父页面能够断开当前 url 的弹出窗口并更改为新的 url,同时保持弹出窗口打开。因为关闭并重新打开弹出窗口会更改其 location/size,这不是我想要的。
有人知道如何实现吗?
父页面可以向子页面发送 close
消息(例如,通过 postMessage
)。那么在子页面一侧,可以通过disconnect()
.
强制断开
参考文献:1 and 2.
我有一个(父)页面,可以通过
打开一个弹出窗口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: ...
。当我手动关闭弹出窗口时,它显示同时断开了几个套接字。
我希望父页面能够断开当前 url 的弹出窗口并更改为新的 url,同时保持弹出窗口打开。因为关闭并重新打开弹出窗口会更改其 location/size,这不是我想要的。
有人知道如何实现吗?
父页面可以向子页面发送 close
消息(例如,通过 postMessage
)。那么在子页面一侧,可以通过disconnect()
.
参考文献:1 and 2.