我想要顯示彈出式窗口,一旦用戶進行了身份驗證並關閉用戶重定向到主頁,即會關閉。爲了向後兼容登錄頁面可以在瀏覽器中顯示,而不是在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