我是 JavaScript 新手。我有一个带有滚动条的 div,我希望当 OnTick 触发时,滚动条自动向下移动。
现在,它可以工作,但仅当我发送消息(这是聊天)或加载对话时(因此在 ListView 的 GetMessages 上)。
JS
$(function scrollTopYeah() {
alert('hi');
document.getElementById('divDuClavardage').scrollTop = 9999999;
});
C#
protected void TimerChat_Tick(object sender, EventArgs e)
{
lvChat.DataBind();
Page.ClientScript.RegisterStartupScript(GetType(), "", "scrollTopYeah();", true);
Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "myscript", "alert('test')", true);
ClientScript.RegisterClientScriptBlock(typeof(Page), "myscript2","document.getElementById('divDuClavardage').scrollTop = 99999;", true);
Page.ClientScript.RegisterStartupScript(this.GetType(), "close", "scrollTopYeah()", true);
}
我尝试了你能看到的所有 4 行^...我做错了什么?它们都不起作用
我只想在Tick上调用我的JS函数!
谢谢
最佳答案
只有当用户向服务器发送消息时才触发该函数的原因是,这是服务器可以向浏览器发送命令的唯一时间。服务器不会与客户端浏览器保持连接,它只接收请求并回复它们。因此,它可以通知客户端浏览器的唯一时间是在客户端向服务器发送请求之后,即发送消息或加载对话。
TimerChat_Tick 方法在客户端响应返回后在服务器上的某个时刻被调用,但实际上可能不会被调用,因为它在响应返回后被限制了范围。
要让服务器在客户端浏览器上调用某些内容,您需要使用 Websocket 或让计时器在客户端 JavaScript 中运行。
虽然从方法名称来看,您可以在浏览器上使用 setTimeout(function,time) 方法。但如果这不是您想要做的,这里有一篇关于 websockets 和 .net 的文章:http://weblogs.asp.net/dwahlin/building-an-html5-web-sockets-server-with-asp-net-4-5
关于javascript - 如何在 onTick 中调用 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27388620/