gpt4 book ai didi

javascript - 弹出窗口关闭后触发的事件

转载 作者:行者123 更新时间:2023-11-28 08:48:29 26 4
gpt4 key购买 nike

我正在为我工​​作的公司创建单点登录服务。它必须有自己的 JavaScript 库,就像 Facebook 为其 oAuth 服务提供的那样。我无法检测窗口何时关闭,以便我可以实现故障处理程序。

我尝试过使用window.onunload,但是当您登录时,文档会卸载,然后window.onunload 会触发。我试图找到一种方法来检查是否有方法检查窗口是否处于关闭状态。不过找到它的运气并不好。

之后,我尝试使用 window.CLOSED 检查window是否已关闭。这不起作用,因为 window.onunload 事件在窗口关闭之前触发。

我查看了 Mozilla Developer Network wiki 上的 window 对象,发现了 window.close 事件。我尝试过,但由于某种原因它没有启动。

到目前为止我实现的代码:

弹出窗口 - 登录:

window.onunload = function (e) {
try {
window.opener.postMessage([false], '*');
} catch (e) {}
};

弹出窗口 - 登录成功:

window.opener.postMessage([true, 'data' ], '*');
window.close();

开场白:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent, function (e) {
if (e.data[0]) {
this._data = JSON.parse(e.data[1]);
return _fireEvent('success', e.data[1]);
} else {
if (win.CLOSED)
return _fireEvent('failure');
}
}, false);

最佳答案

Javascript detect closing popup loaded with another domain 是一个类似的问题。看看那里建议的答案是否可以帮助您解决您遇到的问题。

关于javascript - 弹出窗口关闭后触发的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450729/

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