如何使用javascript重新填充Facebook共享对话框

How to repopulate Facebook Sharing Dialog with javascript

本文关键字:填充 Facebook 共享 对话框 何使用 javascript 新填充      更新时间:2024-02-06

我要做的是创建一个表单字段,该字段将选中的单选按钮计数为特定值(整数7)。如果选中的单选按钮数量超过3,则系统会填充"Facebook"共享对话框。

如果没有任何问题,它会很好地工作,但当我关闭弹出对话框,并单击更多的单选按钮时,即使计数高于3,Facebook对话框也不会弹出。我怀疑这是由于初始化引起的问题,但我不知道如何解决这个问题。(因为我怀疑,我不确定这个猜测是否也在引导我找到正确的解决方案)

下面是我的javascript代码来解决这个问题。我真的希望分享任何想法!

最佳

<script>
  $(".evaluation").click(function(){
    console.log('clicked');
    var count = 0;
    $(".evaluation").each(function(index,item){
      if (item.value == 7){
        if (item.checked == true){
          count ++;
        }
      }
    });
    console.log('count:' + count);
    if (count >= 3){
    window.fbAsyncInit = function() {
        FB.init({
          appId      : '####',
          xfbml      : true,
          version    : 'v2.5'
        });
        FB.ui({
      method: 'share_open_graph',
      action_type: 'og.likes',
      action_properties: JSON.stringify({
        object:'http://www.###.com',
      })
    }, function(response){
      // Debug response (optional)
      console.log(response);
    });
  };
  (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/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
  }
  }
  );

</script>

您需要在页面加载时一次性使用window.fbAsyncInitFB.init。NOT on按钮点击。不要再尝试加载和初始化JavaScriptSDK,我认为回调函数不会被调用,因为它已经初始化了。

例如:http://www.devils-heaven.com/facebook-javascript-sdk-login/