【问题标题】:Close window, after redirect重定向后关闭窗口
【发布时间】:2012-01-07 22:27:26
【问题描述】:

这是我的场景:

我正在从 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());

有什么想法吗?

谢谢。

【问题讨论】:

  • 好吧,您可以调用$.ajax() 来获取新的网址,然后从页面本身重定向。
  • 您是否有权修改登录页面及其重定向到的页面?我在想如果是这种情况,您可以将查询字符串标志传递给登录页面,然后将登录页面传递给重定向页面,这样当此类页面加载时它会立即自行关闭。

标签: javascript


【解决方案1】:

您可以检查新打开的窗口的 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);

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 2012-01-08
    • 2016-12-14
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2011-06-30
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多