我有一个查询页面a.jsp,每次查询后我看历史记录(左上角后退按钮)都会增加一条本页面的记录。这个页面里面有一个链接可以跳转到b.jsp。
有好几个功能都有上面这些操作,不过我发现有两个跳转以后历史记录保持不变(查询过多少次就会保留多少次,这样跳转以后再调用window.history.back返回时能保持a页面最后一次查询的结果)。而其他几个跳转以后a.jsp的记录只剩了一条,这样再从b.jsp调用window.history.back()时a.jsp的页面会被重新初始化,而不是跳转前最后一次查询的状态。
请问有没有人碰到过这种情况,怎么解决的呢?

解决方案 »

  1.   

    var dom;
    var path="data.xml";
    window.onload=function(){
      if(window.ActiveXObject){
        dom=new ActiveXObject("microsoft.xmldom");
        dom.onreadystatechange=function(){if(dom.readyState==4)ParseXML(dom);}
        dom.load(path);
      }
      else if(document.implementation&&document.implementation.createDocument){
        dom=document.implementation.createDocument("","",null);
        dom.onload=function(){ParseXML(dom);}
        dom.load(path);
      }
      else alert("浏览器不支持xml!");
    }
    function ParseXML(root){
      var w=root.getElementsByTagName("w")[0];
      ShowAttributes(w);
      var nodes=w.childNodes;
      var len=nodes.length;
      for(var i=0;i<len;i++){
        if(nodes[i].nodeType==1)ShowAttributes(nodes[i]);
      }
    }
    function ShowAttributes(node){
      var at=node.attributes;
      if(at.length==0){alert("节点名称为“"+node.nodeName+"”的节点没有属性!");return;}
      var msg="节点名称为“"+node.nodeName+"”的节点的属性集合如下"
      for(i=0;i<at.length;i++){
        msg+="\n"+at[i].nodeName+"="+at[i].value;
      }
      alert(msg);
    }
    那就看这个吧