网页滚动条定位(vs2005)

    技术2022-05-11  82

     前几天需要做个滚动条定位功能 网上查些资料总结如下

    基本原理就是使用cookie保存滚动条的位置 刷新后读取cookie

    前台代码

    <body id="mybody" οnscrοll="SetCookie('scroll',getObject('mybody').scrollTop)" οnclick="scrollback()" > <SCRIPT LANGUAGE="JavaScript" src="../JScript.js" type="text/jscript"> </SCRIPT>

    JScript.js

     function Trim(strValue)    {     return strValue.replace(/^/s*|/s*$/g,"");    }    function SetCookie(sName, sValue)    {     document.cookie = sName + "=" + escape(sValue);    }

        function GetCookie(sName)    {     var aCookie = document.cookie.split(";");     for (var i=0; i < aCookie.length; i++)     {      var aCrumb = aCookie[i].split("=");      if (sName == Trim(aCrumb[0]))       {       return unescape(aCrumb[1]);      }     }

         return null;    }    function scrollback()    {        if (GetCookie("scroll")!=null){document.all("mybody").scrollTop=GetCookie("scroll")}           }        function getObject(id){ if(document.getElementById) {  return document.getElementById(id); } else if(document.all) {  return document.all[id]; } else if(document.layers) {  return document.layers[id]; }}function xmlhttp(){ var A=null; try {  A=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {  try  {   A=new ActiveXObject("Microsoft.XMLHTTP");  }  catch(oc)  {   if (typeof XMLHttpRequest != "undefined" );   {    A=new XMLHttpRequest();   }  } } return A;}

    单只是这些客户端代码还够 在中的page_Load中还需加入 this.SmartNavigation = true;但在VS2005中SmartNavigation 属性以被MaintainScrollPositionOnPostBack 取代使用SmartNavigation

    两种方式个有优缺点 SmartNavigation ,JScript.js文件和this.SmartNavigation = true都需要而去页面不存在刷新问题

    VS2005中若使用 Page.MaintainScrollPositionOnPostBack = true; 则只需这一句可以定位了 但当数据较多时刷新问题很严重


    最新回复(0)