问题
在开发过程中,我接到这样一个功能,写一个聊天页面,要求页面加载或刷新后页面跳转到底部。在经过一系列百度以后,发现一个看似比较简单且靠谱的方法,即加上下面的代码块:
<script>
window.onload = function () {
window.scrollTo(0, document.body.scrollHeight)
}
</script>
因为我是写了两个页面,一个移动端,一个pc端(整体页面都差不多,基本上就底部输入框的区别),相似度99%的代码,移动端的加上可以了,但是pc端的就是不行,于是我又各种百度,有说给scrollTop赋值的,但是这个好像有兼容问题,不管怎么赋值,结果都是0,也看见过情况跟我差不多的,用了他们的解决办法还是没用,最后我把移动端的代码复制一遍,一段一段排查,发现是底部的输入框有问题,
这是pc端的输入框:
这是移动端的输入框:
解决
最后发现是自动获取焦点的问题,在百度的时候其实也遇到过说是可以通过自动获取焦点来实现跳转,但是我试过了,并不可以,后来一遍一遍尝试才发现需要加上上面的代码一起作用才行,当然,这个方法解决了我的问题,不知道遇到类似问题的朋友能不能解决,写出来给大家参考一下
总结
为了防止上面说的不清楚,我再把解决办法总结一下
1、给底部的输入框加上autofocus属性(true)
2、在js代码中添加以下代码
<script>
window.onload = function () {
window.scrollTo(0, document.body.scrollHeight)
}
</script>