这是我的情景:
我正在从javascript文件打开一个窗口,并设置一个间隔以检查该窗口是否已关闭。 (这可以作为各种回调函数)。
问题是,我打开的窗口是一个包含重定向的页面。所以我需要一种方法让窗口在重定向发生后关闭(这样可以触发回调)。
打开窗口的脚本:
oauthWindow = window.open("login/index.php", "Login", options.windowOptions);
oauthInterval = window.setInterval(function() {
if (oauthWindow.closed) {
window.clearInterval(oauthInterval);
options.callback();
}
}, 1000);
正在打开的页面将重定向:
$url = $oauth->getAuthorizeURL($request['oauth_token']);
header("Location: " . $url);
我需要一种方法让窗口在重定向发生后自行关闭。 (window.close()的);
有什么想法吗?
感谢。
答案 0 :(得分:3)
您可以检查新打开的窗口的window.location.href,只要它与登录页面不同,您就知道重定向已经发生,并且可以安全地关闭它。这是一个例子:
var win = window.open("/login/index.php", "Login");
var id = setInterval(function () {
if (win.location.href.indexOf("/login/index.php") < 0) {
clearInterval(id);
//ready to close the window.
}
}, 500);