【发布时间】:2016-11-07 06:24:32
【问题描述】:
我为网络聊天创建了一个普通的 asp.net 应用程序。
每次聊天框 (div) 刷新后,它都会滚动到顶部。我想将它保持在当前位置。
试过了,但是做错了。在 windows.load 中获取 var div 和“hdndiv”值 null。帮帮我!!
<script>
window.onload = function () {
debugger;
var div = document.getElementById("divMessages");
var hdndiv_position = document.getElementById("hdndiv_position");
var position = parseInt('<%=Request.Form["hdndiv_position"] %>');
if (isNaN(position)) {
position = 0;
}
div.scrollTop = position;
div.onscroll = function () {
div_position.value = div.scrollTop;
};
};
<table style="width: 100%" cellpadding="0" cellspacing="0">
<tr>
<td style="padding-left: 10px; padding-right: 10px; padding-bottom: 5px;">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="divMessages" style="width: 100%; height: 300px; table-layout: fixed; word-wrap: break-word; border: 1px solid #ddd; overflow: scroll; " runat="server">
</div>
<asp:Timer ID="Timer1" runat="server" Interval="2000" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblError" ForeColor="Red" runat="server" />
<asp:HiddenField ID="hdnFromUserId" Value="-1" runat="server" />
<asp:HiddenField ID="hdnFromUserName" Value="" runat="server" />
<asp:HiddenField ID="hdnToUserId" Value="-1" runat="server" />
<asp:HiddenField ID="hdnToUserName" Value="" runat="server" />
<asp:HiddenField ID="hdnScrollPos" Value="" runat="server" />
<asp:HiddenField ID="hdndiv_position" Value="" runat="server" />
</td>
</tr>
<tr>
<td style="padding: 10px;">
<table style="width: 100%;" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="padding-right: 10px;">
<asp:TextBox ID="txtChat" TextMode="MultiLine" Rows="2" Width="100%" runat="server" />
</td>
<td style="width: 80px;">
<asp:Button ID="btnSend" CssClass="btn" Text="Send" OnClick="btnSend_Click" runat="server" /></td>
</tr>
</table>
</td>
</tr>
【问题讨论】:
-
并且没有 id 为 "hdndiv" 的元素。所以我猜你是空的。只需检查一次
标签: javascript html asp.net