我的页面做的比较大,页面滚到下方时,再点击按钮,页面刷新时,总是回到顶端,所以还要滚动鼠标,下来才能看到结果。
我想知道有没有方法,能点击刷新后,还显示在之前滚动的位置。不用AJAX能实现吗?
我想知道有没有方法,能点击刷新后,还显示在之前滚动的位置。不用AJAX能实现吗?
解决方案 »
- 关于参数传递问题 在线等,今天结贴。急急急!!!
- 从excel中导入数据的路径问题
- javascript替换'
- Vista下VS2005用File System建立Web项目是无法运行
- 我记得以前Win2000下 都有声音, 现在win2003下为什么没有声音, 是不是2003去掉了多媒体功能了???
- Page.PreviousPage.FindControl("ctl00$ContentPlaceHolder1$lblinvino");是什么意思(急!在线等)
- 如何向数据表中存储图片?
- 怎么能正常的读出来的文本文件里的中文,并且如何换行
- 在asp.net中,C#接口用到的多吗?
- E百分学习机的密码忘记了怎么办?谢谢!
- 这个语句是什么意思
- CS0030: Cannot convert type这个问题怎么解决?
刷新时location.href="url#aa"
Page.MaintainScrollPositionOnPostBack = true;
试一下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
function divChange(obj)
{
a1.scrollIntoView();
} function btnClick()
{
var div1 =document.getElementById("div1");
var a1 = document.getElementById("a1");
div1.removeChild(a1); var str = div1.innerHTML;
var text = document.getElementById("text");
div1.innerHTML =str + text.value; var newa1 = document.createElement("a");
newa1.id = "a1";
div1.appendChild(newa1); div1.click();
}
</script>
</HEAD> <BODY>
<div id="div1" style="height:60px; background-color:blue;overflow:auto;" onclick="divChange(this)">
asdasd <br />
asdasda<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
asdasd<br />
<a id="a1"></a>
</div>
<input type="button" value="点我输入内容" onclick="btnClick()" />
<input type="text" id="text" value="我移动到最下面了哦<br />" style="width:200px;" />
</BODY>
</HTML>这有个例子,不知道对你有用不
随便一个网站,刷新后都仍处于刷新前的位置.
<!--
/*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();">
最简单的方法就是在html页面最上面的<%@Page %>加入MaintainScrollPositionOnPostback="true"
当然你可以可以通过JS来控制
或者是记住你点击的是哪个按钮,然后页面刷新的时候让他得到焦点,就可以自动的滚动到那边了。
http://fqctyj.blog.163.com/blog/static/7084345520087542120777/ 解析 Page.MaintainScrollPositionOnPostBack 属性
JS函数大致如下:
var s = "test";
function fclose()
{
if(s=="no") //这是刷新页面,如果是刷新页面则改变当前地址
window.location.href='#aa';//定位到本页<a name="aa">处
else //这是关闭页面
}
function fload()
{
alert("load me!="+s);
}
function bfunload()
{
s = "no";
}
<a href="###" onclick="执行js函数">哈哈</a>如果是服务端按钮之类的就用这个吧
Page.MaintainScrollPositionOnPostBack = true;
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" MaintainScrollPositionOnPostback ="true" %>