gpt4 book ai didi

javascript - JavaScript 可以在弹出窗口关闭并重新打开它时检测到它吗?

转载 作者:行者123 更新时间:2023-12-03 07:33:05 24 4
gpt4 key购买 nike

我有一个 HTML 页面,可以弹出应用程序的全屏窗口。我想做的是检测弹出窗口何时关闭并重新打开它。

var drawingwindow;

function popup(url)
{
params = 'width='+screen.width;
params += ', height='+screen.height;
params += ', top=0, left=0'
params += ', fullscreen=yes';
params += ', resizeable=no';
newwin=window.open(url,'drawingwindow', params);
if (window.focus) {newwin.focus()}
return false;
}

然后我从 HTML 按钮触发弹出窗口

<input type="submit" name="submit" value="Submit" onclick="popup('hello.php')"/>

我想做的是以某种方式检查绘图窗口的第一页 - 如果它关闭 - 立即重新打开它。它是主 Canvas “drawingwindow”上绘图应用程序的一部分,并且有一种方法可以永久关闭绘图窗口。

最佳答案

浏览器安全性的最新改进意味着您无法很好地完成您想做的事情。

您可以检测到弹出窗口已关闭:

var popupWindow;
var pop = function () {
popupWindow = window.open("example.html"); // has to be on same domain as original file
// setting a popupWindow.onclose event doesn't work (it
// fires immediately). You can fake it by observing some
// known property of the popup window, such as its location:
var fakeOncloseEvent = window.setInterval(function () {
if (!popupWindow.location) {
// The popup was closed.
window.clearInterval(fakeOncloseEvent); // tidy up
pop(); // <-- But this won't work!
}
}, 250);
}

大多数浏览器都会阻止重新打开弹出窗口,因为您只能通过直接用户操作(即单击)来打开新窗口。 (您可以使用上面的内容来引导用户自行重新打开弹出窗口,也许可以通过突出显示“打开弹出窗口”链接,但您无法为他们打开它。)

或者,您可以从另一端解决问题,并将代码放入弹出窗口中以防止其关闭。但大多数浏览器严格限制您在 onbeforeunload 事件中可以执行的操作 - 您几乎只能弹出一个确认对话框:

window.onbeforeunload = function() {
// Just return the string, don't return a confirm() here.
// Various browsers will include their own additional text
// in the confirm dialog, and some may ignore your added text altogether.
return "Are you sure you want to close this beautiful popup?";
}

关于javascript - JavaScript 可以在弹出窗口关闭并重新打开它时检测到它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35732795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com