加载时,Facebook聊天插件自动滚动到顶部

问题描述

我在由OpenCart支持的网站上使用8.0版的Facebook Chat插件(尽管我怀疑它会在任何CMS中发生)。聊天插件完全加载需要几秒钟,并且图标会显示页面的右下角。

但是,显示图标时,页面立即滚动到顶部。因此,如果用户已经开始向下滚动,则该用户将被中断并重置页面

有什么想法会导致这种情况,以及如何防止它发生?

这是我的代码(Facebook在“设置”->“消息传递”->“将Messenger添加到您的网站”中自动生成的原始代码

<script>      

        FB.init({
            xfbml            : true,version          : 'v8.0'
          });
        };

        (function(d,s,id) {
          var js,fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) return;
          js = d.createElement(s); js.id = id;
          js.src = 'https://connect.facebook.net/en_US/sdk/xfbml.customerchat.js';
          fjs.parentNode.insertBefore(js,fjs);
      }(document,'script','facebook-jssdk'));
  
</script>

        <!-- Your Chat Plugin code -->
        <div class="fb-customerchat"
            greeting_dialog_display="hide"
            attribution=setup_tool
            page_id="xxxxxxxxxxxxxxxx"
            theme_color="#67b868">
        </div>

解决方法

该错误当前正在此处跟踪:https://developers.facebook.com/support/bugs/619023102320436/

目前,我已经实现了以下hack(在插件的加载时间附近):

var originalScrollTo = window.scrollTo;
window.scrollTo = function() {};

setTimeout(function() {
 window.scrollTo = originalScrollTo;
},5000);
,

事实证明,此行为仅在响应式设计模式下模拟PC的PC Web浏览器上发生(在Chrome 84.0和Firefox 79.0上进行了测试)。

在实际的智能手机上,它不会滚动到顶部。

编辑:我错了,毕竟它确实会滚动到智能手机的顶部。请在第一个答案中查看此问题的临时解决方案。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...