修改或替换Facebook之类的按钮弹出框

时间:2012-10-18 20:21:07

标签: javascript facebook facebook-like facebook-javascript-sdk facebook-social-plugins

我有一个项目,客户强烈偏好Facebook的“分享”按钮而非“喜欢”按钮。我需要稍微修改'like'来说服他们使用它。我很清楚“共享”按钮已被弃用(并因此而存在问题),但他们一直坚持不懈。

除了按钮的verbage外,他们似乎更喜欢的是“共享”按钮弹出窗口,它还允许用户更改默认文本(由Facebook的开放图形标签提供,即og:description等)点击它。

如果它可以更像'分享',它们可以被移动使用'喜欢'按钮。是否有可能以某种方式获得“喜欢”按钮弹出对话框(当您单击按钮时出现并且具有og:title,og:image,og:description等标签)出现在弹出窗口中?优选地,用户能够通过点击来更改该文本,因为“共享”弹出允许?

他们也想要计数器,否则我只是在下面用我的锚标签使用css。

我尝试了以下内容,但在“喜欢”按钮上没有运气。 Google将替换为我的网站及其自己的og标签:

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">

    <head></head>

    <body>

        <div id="fb-root"></div>
         <script>

          function share() {
             FB.ui({
                 method: 'stream.share',
                 u: 'www.google.com',
              });
          };

          (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>

        <fb:like id="fbLike" href="www.google.com" onclick="share();" send="false" layout="box_count" show_faces="false" ></fb:like>

        <a href="#/" onclick="share();">Can I get the like button to work like this?</a>

    </body>
    </html>

2 个答案:

答案 0 :(得分:1)

为什么不使用Feed对话框在用户墙上共享。是否有任何特殊原因不使用我错过了?

调用feed对话框的代码如下:

     function share() {
        FB.ui({
        method: ‘feed’,
        link: ‘link of where the user should land when he click on post goes here’,
        picture: ‘picture url goes here’,
        name: ‘Name goes here’,
        caption: ‘Caption goes here e.g www.google.com’,
        description: ‘description goes here’}, 
        function (response) {
                      if (!response || response.error) {
                    //When posting fails
                      } else {
                    //When posting succeeds
          }
    );
}

您可以在此处找到更多详细信息:https://developers.facebook.com/docs/reference/dialogs/feed/

答案 1 :(得分:0)

好吧,似乎没有人有解决方法。我想如果有人发现我的锚点示例对于创建自定义共享按钮很有用(即使它已经被弃用了 - 说真的,除非你在我的船上,帮助自己并且只是使用它),至少我的问题帮助了某人。我发现添加:

    style="overflow:hidden"

到fb:like标签,然后将以下代码添加到脚本块的开头(就在共享功能之前):

    window.fbAsyncInit = function() {
        FB.init({
            appId: ''
        });
        FB.Event.subscribe('edge.create', function(response) {
            share();
        });
    };

将隐藏类似的对话框,并在用户单击like按钮时使用共享弹出窗口(edge.create会像操作一样监听用户)。但问题是,用户将在用户的墙上有两个帖子 - 一个用于类似操作,另一个用于共享。正如预期的那样发布相同的开放图形标签标题,图像和描述信息,只有一个帖子说他们'喜欢'而另一个说他们'共享'。但是我需要阻止'喜欢'。当然,计数器将增加2.关闭,但不够好。

只是在弹出窗口中出现类似对话框的任何方法吗?