刷新后 页面 保持滚动条位置
生活随笔
收集整理的這篇文章主要介紹了
刷新后 页面 保持滚动条位置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如何使頁面刷新后仍然保持滾動條位置,有幾種方法:
1. MaintainScrollPositionOnPostBack 最好
在Page_Load 中加入 Page.MaintainScrollPositionOnPostBack = True
或者在頁面的<%@ Page? %> 中加入MaintainScrollPositionOnPostBack = True? 一樣的效果
2.SmartNavigation
在Page_Load 中加入 Page.SmartNavigation= True
或者在頁面的<%@ Page? %> 中加入SmartNavigation= True?
這中方法已經過時了,有的時候會出現CSS的樣式無法顯示的情況
3.javasvript方法1
如果ascx(Custom Control)自定義空間太長,可以用jscript實現保持滾動條位置效果
<script?language="javascript"><!--
//??獲取當前文件名
function?getFileName()
{
????var?url?=?this.location.href;
????var?pos?=?url.lastIndexOf("/");
????if(pos?==?-1)
????????pos?=?url.lastIndexOf("\\");
????var?filename?=?url.substr(pos+1);
????return?filename;
}
function?fnLoad()
{
????with(window.document.body)
????{
????????addBehavior?("#default#userData");????//?使 得body元素可以支持userdate
????????load("scrollState"?+?getFileName());????//?獲 取以前保存在userdate中的狀態
????????if?(sFirstEnter=="0")
????????{???scrollLeft?=?getAttribute("scrollLeft");????//?滾 動條左位置
????????????scrollTop?=?getAttribute("scrollTop");
????????}
????}
}
function?fnUnload()
{
????with(window.document.body)
????{???setAttribute("scrollLeft",scrollLeft);
????????setAttribute("scrollTop",scrollTop);
????????save("scrollState"?+?getFileName());????
????????//?防止受其他文件的userdate數據影響,所以將文件名加上了
????????//?userdate里的數據是不能跨 目錄訪問的
????}
}
window.onload?=?fnLoad;
window.onunload?=?fnUnload;
//?-->
</script>?
網上說只要具有scroll屬性的html控件,都可以用這個方法來實現頁面刷新后的滾動條的定位。當然,函數是要做一下改動。把 with(window.document.body)中的body改為其他控件的ID就可以了: with(window.document.all["控件ID"])
4.javascript 方法2
這是在網上看到的另一種用JS保持頁面滾動條位置
<SCRIPT?LANGUAGE="JavaScript"><!--???
??/*haiwa@2004-02-12*/???
??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.body.scrollTop=GetCookie("scroll")}???
??}???
??//-->
</script>???
?然后修改BODY位置為
<BODY?id=body?onscroll=SetCookie("scroll",body.scrollTop);?onload="scrollback();">總結
以上是生活随笔為你收集整理的刷新后 页面 保持滚动条位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows7中的系统健康报告
- 下一篇: 求助:一个物理专业的在做GPU的人