aspを使用せずに、ポストバックでdivスクロール位置を維持する方法はありますか? これまでのところ、asp を使用したソリューションしか見つかりませんでした。
6015 次
2 に答える
0
http://blogs.x2line.com/al/articles/156.aspx
<!doctype html>
<html>
<head>
<title></title>
<script language="javascript">
// function saves scroll position
function fScroll(val)
{
var hidScroll = document.getElementById('hidScroll');
hidScroll.value = val.scrollTop;
}
// function moves scroll position to saved value
function fScrollMove(what)
{
var hidScroll = document.getElementById('hidScroll');
document.getElementById(what).scrollTop = hidScroll.value;
}
</script>
</head>
<body onload="fScrollMove('div_scroll');" onunload="document.forms(0).submit()";>
<form>
<input type="text" id="hidScroll" name="a"><br>
<div id="div_scroll" onscroll="fScroll(this);" style="overflow:auto;height:100px;width:100px;">
.. VERY LONG TEXT GOES HERE
</div>
</form>
</body>
</html>
于 2011-02-08T21:12:07.660 に答える
0
たぶん、このJavaScriptコードがあなたのために働くでしょう
function loadScroll ()
{
var m = /[&?]qs\=(\d+)/.exec (document.location);
if (m != null)
myDiv.scrollTop = parseInt (m[1]);
}
function saveScroll ()
{
var form = document.getElementById ("myForm");
var sep = (form.action.indexOf ("?") == -1) ? "?" : "&";
form.action += sep + "qs=" + myDiv.scrollTop;
}
これで、「submit」イベントを監視して、「action」属性に位置を保存できます。
document.getElementById ("myForm").addEventListener ("submit", saveScroll, false);
そしてあなたのBODYタグで...
<body onload="loadScroll ();">
....
</body>
今はコードをテストすることはできませんが、おわかりいただけたと思います。
于 2011-12-23T12:16:43.540 に答える