浏览器后退按钮在隐藏的div之间断开

时间:2010-01-21 20:41:46

标签: html css

首先,这些页面永远不会在网络上,但会在内部存储器中。它们是一组链接文件 - 电子书。

http://www.anmldr.com/testdivs

当我点击第一个div中的链接时,第二个div变为可见,第一个div被隐藏。问题出在浏览器的后退按钮上。如果您再单击后退按钮,则URL会更新,但第一个div不再显示。如何更正后退按钮以便显示第一个div?从第二个div到第一个div的链接工作正常,但它是我不知道如何使用的浏览器后退按钮。

谢谢, 琳达

P.S。这些都使用CSS3,因此最好使用基于WebKit的浏览器。

3 个答案:

答案 0 :(得分:2)

jQuery插件的工作方式是每100毫秒检查一次当前的URL,并且一旦哈希部分发生变化,它就会使用回调函数触发内容重置。这是相当低效和粗糙的,但我不认为还有另一种方式。您可以通过将此脚本添加到头部来执行此操作:

<script>
  var lastHash = window.location.hash || "nothing";
  setInterval(function() {
    if (lastHash != window.location.hash) {
      if (window.location.hash == '#offscreen') {
       document.getElementById('offscreen').className = 'slideInFromRightToLeft';
       document.getElementById('div1').className = 'slideLeftOut imInvisible';
      } else {
       document.getElementById('offscreen').className = 'slideRightOut imInvisible';
       document.getElementById('div1').className = 'slideInLeftToRight';
      }
    }
  }, 100);
</script>

这样你也可以删除onClick处理程序并将所有逻辑放在这个函数中。

答案 1 :(得分:1)

我认为最好的选择是使用以下代码:

$(window).load(*GetSelectedItem*);

GetSelectedItem示例函数如下:

function GetSelectedItem() 
{
    var chosen = "";
    var len = document.signUpFrm.frmUserChoiceForActionPropertyType.length;

    $('#display_spacer').hide();

    $('#display_industry_type').hide(); 
    document.signUpFrm.industry_type.value = '-1';

    $('#display_warehouse_type').hide(); 
    document.signUpFrm.warehouse_type.value = '-1';

    $('#display_commercial_type').hide(); 
    document.signUpFrm.commercial_type.value = '-1';

    for (i = 0; i <len; i++) 
    {
        if (document.signUpFrm.frmUserChoiceForActionPropertyType[i].checked) 
        {
            chosen = document.signUpFrm.frmUserChoiceForActionPropertyType[i].value;
            showHideErrorMsg('frmUserChoiceForActionPropertyType','',0);
        }
    }
    if (chosen == "") 
    {
        alert("No Location Chosen");
    }
    else if (chosen == "Industry")
    {
        $('#display_spacer').show();    
        $('#display_industry_type').show();
    }
    else if (chosen == "Warehouse")
    {
        $('#display_spacer').show();    
        $('#display_warehouse_type').show();
    }
    else if (chosen == "Commercial")
    {
        $('#display_spacer').show();    
        $('#display_commercial_type').show();
    }
}

我不确定如果没有JQuery可以做到这一点。是的,你可以看一下JQuery的代码! :)

但这对我有用。

如有任何问题,您可以通过live dot com向我发送ak.81的代码段。

干杯, Annu

答案 2 :(得分:0)