我正在尝试实现以下目标:
在页面 A 上,我们有一个访问受限的链接到页面 B。访问限制是在 PHP 中的服务器端处理的。
当用户点击这个到页面 B 的链接时,我们会在页面 A(通过 javascript)上显示一个带有表单的模式对话框,其中链接的 href (B) 作为操作。(为了给用户一个即时的反馈。回退是将他重定向到一个登录表单,该表单将他重定向到他想要访问的站点。)这个系统运行得很好。
但现在我的问题来了:
我们可以访问受限链接,这些链接应该在新窗口中打开。
现在,如果我在表单上使用 target="_blank" ,用户在他来自 (A) 的页面上保持注销,那仍然在后台打开。
有没有办法在表单提交到新窗口(B)后立即重新加载页面(A,在后台)?
我的第一个想法是使用 window.location.reload(); 在页面 A 的提交处理程序中。
这在 chrome 中不起作用,据我所知,这可能会产生竞争条件。
另一个想法是通过 ajax 调用登录用户并通过 javascript 打开一个新窗口。有没有办法做到这一点而不必处理弹出窗口阻止程序?
我实现了 lostsource 的想法(见下文),并稍加补充。
由于我只需要重新加载一次,因此如果 cookie 发生更改,则可以停止 setInterval 的计时器。
var ri=setInterval(function() {
if(oldCookie != document.cookie) {
// assuming a login happened, reload page
clearInterval(ri);
window.location.reload();
}
},1000); // check every second
我仍然喜欢这个主意。stackoverflow 太棒了!