0

我正在编写一个小型的喊话框/聊天应用程序,我在其中使用以下代码每 0.5 秒刷新一次消息日志 div 并刷新到底部以显示最新消息。

$(setInterval(function() {
    $('.messageLog').load('display_messages.php');
    window.location='#bottom';
}, 500));

'#bottom' 指的是我放在 '.messageLog' div 末尾的一个空 div,所以我有一个位置可以称为消息日志的底部。这种方法的问题是,当我尝试登录时(只需输入用户名并通过聊天框顶部的小表单按下登录按钮),用户名输入字段不断刷新并失去焦点在 Firefox 和 Internet Explorer 中每 0.5 秒(在 chrome 中运行良好)。问题原来是“window.location='#bottom'”行,这导致了输入字段聚焦问题。

我想知道是否有办法解决这个问题,这样我仍然可以每 0.5 秒刷新一次消息日志并自动滚动到底部,同时不会干扰用户尝试通过用户名字段登录。

4

1 回答 1

1

移除锚点,改用这个

$(".messageLog").attr({ scrollTop: $(".messageLog").attr("scrollHeight") });
于 2011-04-24T11:56:54.750 回答