如何在jQuery刷新页面时保持选项卡?

时间:2014-01-07 15:50:07

标签: javascript jquery jsp jsf

页面正在更改而不加载(感谢jQuery),但在重新加载页面后,它们总是返回主页面(main.jsp)。是否可以留在我刷新后选择的页面上?

JSP文件(main.jsp):

<ul>
    if ((loginBean.getStatus() != "") && (loginBean.getStatus() != null)) {
%>
<li><a href=main.jsp><h:outputText value="#{kom.glowna}"/></a></li>
<li><a id="about_us" href="#about">O nas</a></li>
    <%
        if (loginBean.getStatus().equals("admin")) {
    %>
<li><a id="show_accounts" href="#accounts"><h:outputText value="#{kom.konta}"/></a></li>
<li><a id="register_all" href="#register"><h:outputText value="#{kom.zarejestruj}"/></a></li>
<li><a id="delete_account" href="#delete"><h:outputText value="#{kom.usun}"/></a></li>
    <%
    } else if (loginBean.getStatus().equals("klient")) {
    %>
<li><a id="zapis_na_wizyte" href="#visit"><h:outputText value="#{kom.wizyta}"/></a></li>
<li><a id="add_animal" href="#animal"><h:outputText value="#{kom.zwierze}"/></a></li>
<%
} else if (loginBean.getStatus().equals("lekarz")) {
%>
<li><a id="patients" href="#patients"><h:outputText value="#{kom.pacjenci}"/></a></li>
    <%
        }
    %>
<li><a id="my_account" href="#account"><h:outputText value="#{kom.konto}"/></a></li>
<li>
    <h:form>
        <h:commandLink action="#{loginBean.logout}" ><h:outputText value="#{kom.wyloguj}"/></h:commandLink>
    </h:form>
</li>
<%
} else {
%>    
<li>
    <h:form>
        <h:commandLink value="Wróć do strony głównej." action="#{loginBean.logout}"><h:outputText value="#{kom.wroc}"/></h:commandLink>
    </h:form>
</li>
<%
    }
%>
</ul>

JavaScript的:

$().ready(function()
{
    $("#about_us").click(function()
    {
        $("article").load("about.jsp");
    });
    $("#show_accounts").click(function()
    {
        $("article").load("showAccounts.jsp");
    });
    $("#register_all").click(function()
    {
        $("article").load("registerAll.jsp");
    });
    $("#delete_account").click(function()
    {
        $("article").load("deleteAccount.jsp");
    });
    $("#zapis_na_wizyte").click(function()
    {
        $("article").load("showAnimal.jsp");
    });
    $("#add_animal").click(function()
    {
        $("article").load("addAnimal.jsp");
    });
    $("#patients").click(function()
    {
        $("article").load("pacjenci.jsp");
    });
    $("#my_account").click(function()
    {
        $("article").load("account.jsp");
    });
});

我会感激任何帮助。

2 个答案:

答案 0 :(得分:0)

一种方法是使用hash

有关更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window.onhashchange

想法是使用此事件来处理哈希值更改的时间。加载包含哈希值的页面时也会发送此事件(例如yoursite.com/main.jsp#my_account)。

要检索当前哈希值,请使用window.location.hash

另一种方法是使用History.js

请参阅https://github.com/browserstate/history.js/

答案 1 :(得分:-1)

您可以使用Cookie(或会话)来保存页面。这里有一个jquery插件来管理cookie:http://plugins.jquery.com/cookie/