0

问题是我的网站只包含一个页面,其中包含一个侧面菜单和一个 div,而所有其他页面都加载在其中,问题是所有浏览器诽谤的功能(返回、刷新、书签)都消失了。所以我的问题是有没有办法在将页面加载到 div 时恢复浏览器功能,或者我应该使用另一种方式在主页中加载页面?

主页:

<div id="nav" class="mmenu">
            <ul id="nav_ul" class="float_left">
                <li><a class="upper" id="1" target="collabsoft" href= "profilePage.php?property_variable=mine">My Profile</a></li>
                <li><a id="2" class="menu-message"
                       href= "viewMessages.php">Messages<label id="num_msg">(<?php echo $count; ?>)</label></a></li>
                <li><a id="3" class="menu-conference"  target="collabsoft" href= "userHomepage.php">My Conferences</a></li>
                <li><a id="4" class="menu-conference2"  target="collabsoft" href= "availableConferences2.php">Conferences</a></li>
                <li><a id="5" class="menu-request"
                       href= "incomingRequests.php">Requests<label id="num_requests">(<?php echo $total ?>)</label></a></li>
                <li><a id="6" class="menu-news"
                       target="collabsoft" href= "viewNews.php" >News</a></li>
                <li><a class="lower" id="7" target="collabsoft" href= "generalOptions.php" >Options</a></li>
            </ul>
        </div>
        <table id="collabsoft_table" class="no_border">
            <tr>
                <td id="collabsoft_td" class="no_border">
                    <div scrolling="no" id="collabsoft" name="collabsoft" class="collabsoft"></div>
                </td>
            </tr>
        </table>
        <br/>
    </div>
4

1 回答 1

1

您需要为不同的资源提供不同的 URL,否则浏览器将不会保留/更新其历史记录,服务器将提供相同的页面。

  • 您应该使用哈希链接(URL 中“#”字符之后的部分)
  • 另一种选择是使用 HTML5 的 History API,它可用于“推送”虚假 URL

让我们关注第一个选项(哈希 URL),主要是因为浏览器支持。

此外,您没有指定是否使用任何 JavaScript 框架,我假设您使用的是 jQuery(因为它很受欢迎)。

查看jQuery 历史

让我解释一下它是如何工作的:

创建链接时,不要绑定到它的“click”事件,而是给它一个哈希字符串,例如:

<a href="#about" title="About me">About</a>

单击链接时,浏览器不会重新加载页面。

然后,使用 jQuery History 插件绑定到该历史更改,例如:

$.History.bind('/about',function(state){
    // Load resource using AJAX, update the "main" div, etc.
});
于 2012-07-20T02:04:26.673 回答