【问题标题】:Detect window.close() function on a window using an event使用事件检测窗口上的 window.close() 函数
【发布时间】:2020-08-26 20:15:17
【问题描述】:

我有两个视图,我们称它们为 view1 和 view2。

view1 是主视图,view2 里面只有一个脚本,里面调用了 window.close()。

view1 使用 window.open(url) 函数打开带有 url 的新窗口。

在该窗口内,当我单击一个按钮后,它会调用控制器内的方法,该方法返回一个名为 (view2) 的新视图。 正如我所说,view2 只是具有 window.close() 函数,因此它会关闭并且焦点回到 view1 窗口。

问题是: 是否有可能有一个事件来检测 window.close() 函数何时被使用,或者甚至检测到窗口不是被用户关闭的?

它的粗略图:

这是打开新窗口的函数,将他存储在变量中,然后尝试将事件附加到该窗口。

该事件将唤起其中的 GetInstagramPictures。

function AuthenticateInstagramAPI(){

    var win = window.open("https://www.instagram.com/oauth/authorize?client_id=346912513373650&redirect_uri=https://localhost:49000/Actions/AccessTokenAuth&scope=user_media,user_profile&response_type=code")
   
    win.addEventListener("beforeunload", function (e) {
        GetInstagramPictures;
    });

}

【问题讨论】:

  • 您尝试过beforeunloadunload 事件吗?
  • 是的......除非用户正在执行操作,否则它们似乎不起作用
  • 我已经添加了事件的代码sn-p
  • 如果要调用函数,GetInstagramPictures后面需要括号。
  • 添加了它们,结果还是一样

标签: javascript jquery asp.net-mvc


【解决方案1】:

当您打开新窗口时,启动 setInterval() 以每隔几秒或任何您认为合适的方式检查 win.closed

如果用户手动关闭窗口或您在远程窗口中调用window.close(),则为true。

当它为真时....用clearInterval()停止间隔计时器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2012-08-29
    • 2015-06-08
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多