Javascript window.onload不运行分配的(滚动)功能
我正在用香草Javascript和AJAX构建一个AJAX聊天系统,因此没有jQuery。消息通过AJAX加载并放入使用overflow-y:scroll的div中;因此,您可以滚动浏览所有消息 因为最新消息显示在底部,所以我有一个向下滚动功能,可以滚动到div的末尾:Javascript window.onload不运行分配的(滚动)功能,javascript,ajax,scroll,chat,Javascript,Ajax,Scroll,Chat,我正在用香草Javascript和AJAX构建一个AJAX聊天系统,因此没有jQuery。消息通过AJAX加载并放入使用overflow-y:scroll的div中;因此,您可以滚动浏览所有消息 因为最新消息显示在底部,所以我有一个向下滚动功能,可以滚动到div的末尾: function scrollDown() { var objDiv = document.getElementById("chatbox"); } 问题是这个函数不起作用。如果我执行window.onload=函数{
function scrollDown()
{
var objDiv = document.getElementById("chatbox");
}
问题是这个函数不起作用。如果我执行window.onload=函数{scrollDown;};我还尝试了window.onload=scrollDown,但这也不起作用
我确信这个问题不在scrollDown功能中,因为当出现新消息时,我也会使用该功能自动向下滚动,这样效果会很好
以下是我的完整源代码:
getBerichten();
function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}
function doWork(id, user_id) {
nieuwbericht = getHTTPObject();
if (nieuwbericht != null) {
if( document.getElementById('bericht').value != "")
{
nieuwbericht.open("GET", "ajaxberichten.php?id=" + id + "&user_id=" + user_id + "&bericht="
+ document.getElementById('bericht').value, true);
nieuwbericht.send(null);
document.getElementById("bericht").value = "";
}
}
}
function setOutput()
{
if(httpObject.readyState == 4)
{
document.getElementById('berichten').innerHTML = httpObject.responseText;
//scrollDown();
setInterval(getBerichten(),1000);
}
}
function getBerichten()
{
httpObject = getHTTPObject();
if (httpObject != null)
{
httpObject.open("GET", "ajaxgetberichten.php?id=<?php echo $_GET['id'] ?>", true);
httpObject.send(null);
httpObject.onreadystatechange = setOutput;
}
}
function scrollDown()
{
var objDiv = document.getElementById("chatbox");
objDiv.scrollTop = objDiv.scrollHeight;
}
window.onload = function() { scrollDown(); };
我的html页面:
<div class="postbox">
<div class="post">
<div class="chatbox" id="chatbox">
<div id="berichten"></div>
</div>
<form method="post" action="">
<textarea name="bericht" id="bericht"rows="20" cols="85"> </textarea>
<input name="verstuur" type="button" onclick="doWork(<?php echo $_GET["id"] ?>, <?php echo $user_id ?>);" value="Verstuur"/>
</form>
</div>
</div>
尝试document.ready而不是window.onload,因为您可能无法在窗口事件中准备就绪谢谢您的快速回复,我仍然有相同的问题。这很有趣,因为当我在一个新的选项卡中打开页面时,它会工作。如果我加载页面,然后使用F5再次重新加载,它将不再工作。