如何在按下F5或刷新按钮时仅刷新页面的一部分

时间:2011-09-24 14:54:28

标签: javascript jquery html iframe

我正在设计一个包含所有页面共享菜单的Web应用程序。因此我决定使用jquery加载div中菜单按钮链接的内容。

所以,我有这个:

     $("#AddNewProductBtn").click(function() {
       $("#content").load("addproduct.html");
   });

我想跟踪“#content”div中显示的页面。如果用户刷新页面,我想在“#content”中加载相同的页面。有没有办法做到这一点,还是有任何解决方法?

我看到一些使用iframe加载页面的网站,但是当用户点击菜单中的按钮时,网址也会被更改。我没有找到任何关于如何做到这一点的信息。

由于

3 个答案:

答案 0 :(得分:7)

这是F5和CTRL + R的解决方案

$(document).keydown(function(e) {
    if (e.which == 116 || e.keyCode == 82 && e.ctrlKey) { //116 = F5
        $("#content").load("addproduct.html");
        return false;
    }
}); 

答案 1 :(得分:5)

您应该将参数附加到网址的哈希部分(在#之后),例如domain.com/index.php#addproduct

然后在document.ready上检查#之后的值并加载相应的内容。

jQuery history这样的插件使用这种技术。

此外,您可以在浏览器中利用代码的本地存储和缓存部分,这样您就不会在第二次使用AJAX调用加载内容。

答案 2 :(得分:0)

或者,您可以使用HTML5历史记录API(pushStatereplaceStatepopstate)代替使用哈希值。基本上,它是一个带有一些改进的哈希(对于一个,可由搜索引擎索引)。

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
http://www.w3.org/TR/html5/history.html