【问题标题】:Using JS to maintain the scroll position of a DIV upon postback... Need some help使用 JS 在回发时保持 DIV 的滚动位置...需要一些帮助
【发布时间】:2011-04-06 16:41:36
【问题描述】:

我们正在尝试使用 JS 在标准 FORM 回发时保持 DIV 的滚动位置。有几种针对 ASP、PHP 等的在线解决方案……但是我们使用专有的 CGI 结构进行编码,因此这些解决方案对我们不起作用。

我在您的页面上找到了这个脚本,几年前由 Eric Pascarello 编写(见下文)。对于我们想要完成的工作,它完美工作,少了一个主要问题 - 它写入 cookie,我们需要它写入隐藏字段。

通过全面披露的过程,我是一名软件工程师,并且相当精通各种形式的脚本 - 但是,我在 JS 方面非常糟糕。我确信解决方案很简单,并且盯着我的脸,但我不确定要改变什么。

<script type="text/javascript"> 
window.onload = function(){ 
var strCook = document.cookie; 
if(strCook.indexOf("!~")!=0){ 
var intS = strCook.indexOf("!~"); 
var intE = strCook.indexOf("~!"); 
var strPos = strCook.substring(intS+2,intE); 
document.getElementById("'+divTest4+'").scrollTop = strPos; 
} 
} 
function SetDivPosition(){ 
var intY = document.getElementById("'+divTest4+'").scrollTop; 
document.title = intY; 
document.cookie = "yPos=!~" + intY + "~!"; 
} 
</script> 
<div id="'+divTest4+'" onscroll="SetDivPosition()" style="width:150px;height:200px;overflow:auto"> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
ERIC<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/> 
</div> 

提前感谢任何可以提供帮助的人。

G.C.哈特森 萨迪恩知识产权 gch@sadien.com (615) 869-0022 x 8100

【问题讨论】:

    标签: javascript html postback scroll


    【解决方案1】:

    当页面被发送回服务器时,您是否能够获取隐藏字段的值?如果是这样,您可以在页面上将var strCook = document.cookie; 替换为var strCook = document.myForm.hidElement.value。然后,当页面在服务器上时,在将请求返回给客户端之前,您可以使用刚刚在服务器上获得的值呈现该隐藏元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      相关资源
      最近更新 更多