我是Javascript的新手。我有一个带滚动条的div,我希望当OnTick触发时,滚动条会自动关闭。
现在,它有效,但只有当我发送消息(它是聊天)或加载对话时(例如列表视图的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条线^ ...我做错了什么?它们都不起作用
我只想在onTick上调用我的JS函数!
谢谢,
答案 0 :(得分:1)
当用户将消息发送回服务器时,您只获取要触发的功能的原因是因为这是服务器向浏览器发送命令的唯一时间。服务器不会保持与客户端浏览器的连接,它只接收请求并回复它们。因此,它可以通知客户端浏览器的唯一时间是客户端向服务器发送请求,即发送消息或加载会话。
在返回客户端的响应之后,在服务器上的某个时刻调用TimerChat_Tick方法,实际上可能没有调用它,因为它在响应返回后被限制为。
要让服务器在客户端的浏览器上调用某些内容,您需要使用websockets或在客户端javascript中运行计时器。
虽然从方法名称看来,您可以在浏览器上使用setTimeout(函数,时间)方法。但如果那不是你想要做的,那么就是一篇关于websockets和.net的文章:http://weblogs.asp.net/dwahlin/building-an-html5-web-sockets-server-with-asp-net-4-5