2011-07-14 12 views
1

ウェブサイトのカスタムFacebook共有ボタンを設定しました。私がFirefoxでそのボタンをクリックすると、私が定義したすべてのvarの素晴らしい共有ダイアログ(ポップアップ)が表示されます。 Facebookの私の壁への投稿、すてき!しかし、Chrome、Safari、IEでは同じコードが失敗します。ポップアップで「エラーが発生しました。後でやり直してください。」というエラーが表示されます。Facebookフィード:FB.ui()はFirefoxで動作しますがChrome(Safari、IE)ではエラー

私は(もちろんの頭の中でOGのメタタグと一緒に)使用していジャバスクリプト: 私はこのスクリプトを使用して、ウェブサイト:http://www.henkeningrid.org(引用符がクリックされた場合と同様にボタンがアクティブになる)

 el.find('a.facebook-feed').click(function() { 
     var quote = $(this).parents().find('h1').html(); 
     var url = $(this).parents('article').attr('data-url'); 
     var publish = { 
      method: 'feed', 
      message: '', 
      name: 'Henk en Ingrid', 
      caption: '“'+quote+'”', 
      description: ('De wereld volgens Henk en Ingrid.'), 
      link: 'http://www.henkeningrid.org/nl/quote/'+url, 
      picture: 'http://www.henkeningrid.org/site/gfx/fb_preview.png', 
      actions: [{name: 'Henk en Ingrid', link: 'http://www.henkeningrid.org/'}], 
      user_message_prompt: '' 
     }; 
     FB.ui(publish); 
     //return false; 
    }); 

答えて

1

JavaScript SDKの新しいバージョンでもこの問題が発生しました。これはChromeでのみ発生するのは間違いですが、実際にはSDKの同期バージョンも削除されていました。私たちは非同期コードを保存し、すべてのブラウザで見ていた問題を修正しました。

<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&appId=XXXXXX"; 
     fjs.parentNode.insertBefore(js, fjs); 
    } (document, 'script', 'facebook-jssdk')); 
</script> 
1

おそらくsdkを2回挿入したためです。非同期メソッドを使用してヘッダーと本文に挿入します。私は同じ問題を抱えていた。ヘッダーの行を削除し、それが働いた。

0

私は同じ問題を抱えていましたが、あなたの "aync loading" -answerは正しい方向に私を指摘しました。 jQueryを使用している場合は、ここに記載されているコールバックを使用することをお勧めします。https://developers.facebook.com/docs/javascript/howto/jquery/ 私のために働きました!

$(document).ready(function() { 
    $.ajaxSetup({ cache: true }); 
    $.getScript('//connect.facebook.net/en_UK/all.js', function(){ 
     FB.init({ 
      appId: '<?=FACEBOOK_APP_ID?>' 
     }); 
     alert('FB loaded'); 
     yourFunction(); 
    }); 
}); 
関連する問題