最近、オープン グラフにアップグレードし、fb:friendpile fb:like-box などの Facebook ソーシャル プラグインをウェブサイトに実装しました。
これらの新機能を実装して以来、これらのプラグインでランダムな動作が見られます。
私のホームページと同様に、URL を入力して初めてアクセスすると、Facebook ソーシャル プラグインはレンダリングされません。
しかし、CTRL F5 を押すと、それらが表示されます。最初は私のマシンに関係があるのではないかと思っていましたが、昨日、私のユーザーの 2 人が同じ問題を報告しました。
私はグーグルで調べましたが、接続コードを配置する場所に関係があるようです。現在、スクリプトのこの関連部分を head タグに配置しています - body タグの直前に配置しようとしましたが、違いはありませんでした。
<script type="text/javascript"> window.fbAsyncInit = function() { FB.init({appId: '<?php echo Zend_Registry::getInstance()->configuration->facebook->appid;?>', status: true, cookie: true, xfbml: true}); /* 登録されたすべてのイベント */ FB.Event.subscribe('auth.login', function(response) { // レスポンスで何かをする ログインする(); }); FB.Event.subscribe('auth.logout', function(response) { // レスポンスで何かをする ログアウト(); }); }; (関数() { var e = document.createElement('script'); e.type = 'text/javascript'; e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; e.async = true; document.getElementById('fb-root').appendChild(e); }()); 関数ログイン(){ document.location.href = "<?php echo $this->baseUrl(); ?>/login/log"; } 関数ログアウト(){ FB.init({appId: '<?php echo Zend_Registry::getInstance()->configuration->facebook->appid;?>'}); FB.logout(関数(応答) { // ユーザーはログアウトされました }); document.location.href = "<?php echo $this->baseUrl(); ?>/ログイン/ログアウト"; false を返します。 } </script>
トラブルシューティングに関する洞察をいただければ幸いです ありがとう