我想要显示弹出式窗口,一旦用户进行了身份验证并关闭用户重定向到主页,即会关闭。为了向后兼容登录页面可以在浏览器中显示,而不是在popu窗口中显示。重定向/重新加载浏览器
的index.jsp
<%[email protected] id="USER" type="cz.literak.demo.oauth.model.entity.User"--%>
<c:if test="${not empty USER}">
<p>
Logged as ${USER.firstName} ${USER.lastName}, <a href="logout">Logout</a>
<c:if test="${not USER.areRegistered('TW,FB,GG')}">
<a href="login.jsp" class="popup" data-width="600" data-height="400">Improve Login</a>
</c:if>
</p>
</c:if>
<c:if test="${empty USER}">
<p>
<a href="login.jsp" class="popup" data-width="600" data-height="400">Login</a>
</p>
</c:if>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
<script>
$("a.popup").click(function(event){
event.preventDefault();
window.open (href, "OAUTHLOGIN", "height=" + height +",width=" + width + "");
});
</script>
一旦通过验证,弹出/浏览器重定向到logged.jsp。如果在其中打开login.jsp,它应该将主窗口重定向到主页面并关闭弹出窗口。
<script>
window.top.location = "index.jsp";
if (window.name == "OAUTHLOGIN") {
window.close();
}
</script>
它似乎只有一个例外。如果浏览器已经显示index.jsp,则什么都不会发生。我试过location.reload(true)
,但它在弹出窗口中导致了无限循环。
我该如何让它工作?谢谢
does window.top.location.reload work? – Huangism
否,弹出关闭,但原始页面不受影响。 –
我认为有迹象表明您可以判断页面是否已刷新?就像用户登录时,它显示了他们的用户名或类似 – Huangism