javascript控制滚动条刷新后位置不变

方法1   cookie

 

//页面加载时从cookie取滚动条位置信息,然后附值给滚动条
   
 
 function window.onload()
 {
 var arr;
 if(arr=document.cookie.match(/scrollTop=([^;]+)(;|$)/))
 //document.documentElement.scrollTop=parseInt(arr[1]);
 div_pdulist.scrollTop=parseInt(arr[1]); // div_pdulist是一个div的id;
  
 }

 //页面刷新前保存滚动条位置信息到cookie

 function window.onbeforeunload(){
 
 var scrollPos;
 scrollPos=div_pdulist.scrollTop;
 document.cookie="scrollTop="+scrollPos;
 }

 

方法2(本方法还包含一个对子窗口点击”取消“才使滚动条归位的做法)

 

在兄弟框架中定义一个全局变量  本方法用的是 top.topFrame(第一个“top”指的是顶层框架)

 

步骤一:定义  var imageScoll=" ";

var flag=0;//一个来标记  如果在弹出的页面点确定,滚动条就返回到顶端,如果点返回才回到原来的位置

 

步骤二

//在页面刷新的时候获取flag 

 function window.onbeforeunload(){
  top.topFrame.flag=document.getElementById("ab").value;//页面一个id为“ab”的隐藏域
 }
 

 

 function window.onload(){
 if(top.topFrame.flag==0){
 var str=top.topFrame.imageScoll;
 if(str.length!=0){
 var pos=str.split(",");
 var posY=pos[0];
 var posX=pos[1];
 var obj=document.getElementById("div_pdulist");
 
 obj.scrollTop=posY;
 obj.scrollLeft=posX;
 
 }
 }else{document.body.scrollTop=0;
 document.body.scrollLeft=0;
 
 }
 
 }

 

 步骤三:在子窗口点击确定的js方法中加入改变父topframe窗口框架中flag的影子值<input type="hidden" id="ab" value="0">

 

function confirmClick(action) {
    window.opener.document.getElementById("ab").value=1;
   

// alert(window.opener.document.getElementById("ab").value);
 if (document.frm_pduNew.judgeData()) {
  enableBtn(false);
  if (action == "saveAndContinue") {
   var curPage = document.forms["gen_pduinfo"].curPduIndex.value;
   var temp = parseInt(curPage)+1;
   //注页面不刷新,但要和其它页面的信息保持一致
   document.forms["gen_pduinfo"].curPduIndex.value = "" + temp;
   document.frm_pduNew.document.forms["gen_pduinfo"].action += "?curPduIndex=" + temp;//curPduIndex.value = "" + temp;
   changeUpAndDownArray(); 
  }
  document.frm_pduNew.document.forms["gen_pduinfo"].button.value = action;  
  document.frm_pduNew.document.forms["gen_pduinfo"].pageTo.value = "pduInfo";
  document.frm_pduNew.document.forms["gen_pduinfo"].submit();
 }
}

 

你可能感兴趣的:(javascript控制滚动条刷新后位置不变)