如何观察打开的Popup的位置?

发布于 2024-10-04 03:13:57 字数 448 浏览 3 评论 0原文

我想打开一个弹出窗口,并在用户关闭弹出窗口或通过外部链接离开它时收到通知。

popup = window.open(
  "http://ec.europa.eu/yourvoice/ipm/forms/dispatch?form=tobacco6", 
  '',
  'status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,copyhistory=no'
);

为了检查用户是否关闭了弹出窗口,我设置了一个超时来检查弹出窗口是否打开。

if(popup.closed)

如何检查弹出窗口的位置是否仍然是最初的位置?

popup.location

只需返回 about:blank 即可。

I wanted to open an popup and get notify if the user closes the Popup or leaves it through an external link.

popup = window.open(
  "http://ec.europa.eu/yourvoice/ipm/forms/dispatch?form=tobacco6", 
  '',
  'status=no,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no,copyhistory=no'
);

To check if the user closed the popup I set an Timeout that checkes if the popup is open.

if(popup.closed)

How can i check if the location of the popup is still the inital one?

popup.location

just return about:blank.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小情绪 2024-10-11 03:13:57

您只需使用 onbeforeunload 事件即可。

popup.onbeforeunload = function(e) {
    if(!e) e = window.event;
    //e.cancelBubble is supported by IE - this will kill the bubbling process.
    e.cancelBubble = true;
    e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

    //e.stopPropagation works in Firefox.
    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}

You can simply use the onbeforeunload event.

popup.onbeforeunload = function(e) {
    if(!e) e = window.event;
    //e.cancelBubble is supported by IE - this will kill the bubbling process.
    e.cancelBubble = true;
    e.returnValue = 'You sure you want to leave?'; //This is displayed on the dialog

    //e.stopPropagation works in Firefox.
    if (e.stopPropagation) {
        e.stopPropagation();
        e.preventDefault();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文