1

私は、ajax を介してさまざまなページ (java-script + html) をロードする、開発された単一ページの Web サイトを持っています。全ページ共通のフッター部分にFBいいねボタンを設置しました。問題は、あるページから別のページに移動するたびに、ページ全体を更新するまでいいねボタンが表示されないことです。たとえば、最初に HOME ページが読み込まれると、FB のようなボタンがフッターに表示されます。しかし、ABOUTページに移動しても表示されません。これで、ABOUT ページが更新されると、いいね ボタンが表示されます。この後、ホームページに戻ると、再びボタンが消えます。ページにボタンを埋め込むために使用するコードは次のとおりです。

    //This is to be included in the html page at the start
    <div id="fb-root"></div>
    <script>(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 = "//connect.facebook.net/en_US/all.js#xfbml=1";
       fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>

    //Below html block is included where you want to place the FB like button
    <div class="fb-like" data-href="https://www.facebook.com/yourPage" 
         data-colorscheme="light" data-layout="standard" data-action="like" 
         data-show-faces="true" data-send="true"></div>

ページ (HOME および ABOUT) は、単一の親ページに非同期的にロードされることに注意してください。

4

1 に答える 1

0

これは、facebook が自分自身を一度だけ初期化し、自分自身を初期化するときにのみ初期化するため、FB Like ボタンが表示されるためです。

そのため、AJAX を使用して別のサイトに移動した場合 (seo にはちょっと悪いことです)、Facebook はまだ初期化されており、FB Like ボタンを再びレンダリングすることを認識していません。したがって、リロードするだけで、facebook が facebook JS を再度初期化し、FB Like ボタンが表示されます。

于 2013-11-06T15:52:37.300 に答える