2014-03-24 73 views
1

所以这个问题之前已经被问过了,但是没有人希望以我想要的方式来做,所以在我尝试和解释的时候忍受着我。 FB.ui API有一些我觉得有用的功能,主要是我可以动态地改变描述。所以,我想把FB.ui放到一个用户可以点击的链接中,然后弹出窗口就会出现在他们可以共享我的网页的地方。到目前为止,我所拥有的是:创建一个自定义的Facebook共享链接

<div id="fb-root"></div> 
    <script> 
function shareFB(){ 

     window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : '42352352356463', 
      status  : true, 
      xfbml  : true 
     }); 
     FB.ui(
    { 
    method: 'feed', 
    name: 'name', 
    caption: 'caption', 
    description: (

    a 
    ), 
    link: 'http://www.image.com/', 
    picture: 'http://www.image.com/static/3.png' 
    }, 
    function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
    } 
); 
     }; 

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

} 
</script> 

,然后我有一个链接到这个位置:

<a class="links" onclick='shareFB()' href="#"> Share! </a> 

但是,这是行不通的。为什么不!

+0

你能更具体的不是“不工作”? – admdrew

+0

当我点击链接时没有任何反应。 – Milap

+0

您需要比这更具体 - 当您排除故障时,您会在控制台中获得什么?当您调试并浏览代码时会发生什么? – admdrew

回答

1

您正在加载了Facebook SDK当你点击按钮,这是错误的方式来加载它,你的脚本改成这样:

<div id="fb-root"></div> 
<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '42352352356463', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 
}; 


// Load the SDK Asynchronously 
(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/pt_PT/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 


function shareFB(){ 
    var obj = { 
     method: 'feed', 
     name: 'name', 
     caption: 'caption', 
     description: 'description', 
     link: 'http://www.image.com/', 
     picture: 'http://www.image.com/static/3.png' 
    }; 

    function share(response){ 
     if (response && response.post_id) { 
      alert('Post was published.'); 
     } else { 
      alert('Post was not published.'); 
     } 
    } 
    FB.ui(obj, share); 
}; 
</script>