所有代码都在这个小提琴中 http://jsfiddle.net/EX6vs/366/
我有一个简单的聊天,我有一个应该工作的JS脚本,它在正文中加载。
function updateScroll() {
var element = document.getElementById("chatlogs");
element.scrollTop = element.scrollHeight;
}
在我的真实代码中,当有人编写新的聊天消息时,函数会被调用,并且JS函数可以正常工作。我不能让它在页面加载时工作。
谢谢!
答案 0 :(得分:1)
编辑:设置scrollTop时,首先将一个临时变量设置为scrollHeight, 你无法将scrollTop设置为以你拥有它的方式滚动。
试试这个:
function updateScroll() {
var element = document.getElementById("chatlogs");
var elementHeight = element.scrollHeight;
element.scrollTop = elementHeight
}
window.onload = updateScroll;
旧答案:
工作小提琴 http://jsfiddle.net/oqa12rht/
您需要使用以下命令启动该功能:
window.onload = updateScroll();
你实际上甚至不需要window.onLoad,
您可以像这样调用函数:
function updateScroll() {
var element = document.getElementById("chatlogs");
element.scrollTop = element.scrollHeight;
}
updateScroll();
答案 1 :(得分:1)
您的代码运行正常。我认为fiddle
是以错误的方式设置的。请找到更新的fiddle。您所要做的就是从No wrap - in <body>
切换按钮中选择javascript
。
@Omarjmh,
对于window.onload
,不需要执行该函数。如果这样做,函数将被执行并分配它返回到onload的任何内容。应排除()
。
以下是MDN
所说的内容,
window.onload = funcRef;
funcRef
是窗口加载事件触发时要调用的处理函数。
了解详情:https://developer.mozilla.org/en/docs/Web/API/GlobalEventHandlers/onload