Facebookチャットプラグインは、ロード時にページをトップに自動スクロールします

Aug 22 2020

OpenCartを利用したサイトでFacebookチャットプラグインバージョン8.0を使用しています(ただし、どのCMSでも発生すると思われます)。チャットプラグインが完全に読み込まれ、アイコンがページの右下隅に表示されるまで、常に数秒かかります。

ただし、アイコンが表示されると、ページはすぐに一番上にスクロールします。したがって、ユーザーがすでに下にスクロールし始めている場合、ユーザーは中断され、ページがリセットされます。

これを引き起こしている可能性のあるものとそれを防ぐ方法はありますか?

これは私のコードです(Facebookによって[設定]-> [メッセージング]-> [メッセンジャーをWebサイトに追加]で自動生成されるバニラコード):

<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>

回答

3 EranPeer Oct 05 2020 at 15:35

バグは現在ここで追跡されています: https://developers.facebook.com/support/bugs/619023102320436/。

現時点では、次のハックを実装しています(プラグインのロード時間前後)。

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

setTimeout(function() {
 window.scrollTo = originalScrollTo;
}, 5000);
RoyHoejgaard Aug 22 2020 at 11:15

この動作は、スマートフォンをエミュレートするレスポンシブデザインモードのPC Webブラウザーでのみ発生することが判明しました(Chrome84.0およびFirefox79.0でテスト済み)。

実際のスマートフォンでは、一番上までスクロールしません。

編集:私は間違っていました、結局それは私のスマートフォンの一番上にスクロールします。最初の回答で、この問題の一時的な解決策を参照してください。