返回按钮/ bfcache:通过jquery隐藏在DOM中的对象在返回时会再次显示?

时间:2014-09-02 00:59:14

标签: javascript jquery html

我有一个网页,第一次访问时会显示一个框。

在网站的其他部分,有“后退”按钮,当然还有浏览器后退按钮。

然而,当使用后退按钮(浏览器或html)时,该框再次可见。

有没有办法确保在返回时不会再次显示该框?即使使用.remove()完全删除对象也不起作用。

我在这里做了一个例子jsbin:

http://jsbin.com/losilu/2/

首先,点击链接隐藏该框,然后点击第二个链接继续。

HTML:

  <div id="hide-on-back">
    Make this go away
  </div>
  <a href="#" id="hide-box">1. Click First To Hide</a><br/>
  <br/>
  <a href="http://jsbin.com/tipup/1/">2. Go Forward</a>

JS:

$(document).ready(function(){
  $('a#hide-box').click(function(e){
    e.preventDefault();
    $('#hide-on-back').fadeOut();
  });
});

HTML / JS(后退按钮):

<a id="go-back" href="#" onclick="function(){history.go(-1);}">Go Back</a>

1 个答案:

答案 0 :(得分:1)

只要您重新加载页面,您通过javascript对dom所做的任何修改都会重置为其初始状态。所以,要么使用ajax(例如我认为使用jquery.load)以避免重新加载整个页面,要么提供一个url参数,您可以通过jquery(Get url parameter jquery Or How to Get Query String Values In js)检查

最后的解决方案是使用Cookie保存信息。