【问题标题】:Facebook/Twitter/Google+ custom Dialog and buttons with counters?Facebook/Twitter/Google+ 自定义对话框和带计数器的按钮?
【发布时间】:2013-03-31 16:37:03
【问题描述】:

全站实时查看: https://tornhq.com/WorkingOn/InteractiveMap/Replaced-With-Divs.html# JSFiddle 片段视图: http://jsfiddle.net/JWXrk/

我想在我的页面上设置自定义分享功能。一旦有人分享了该页面,它将添加到每张图片的空白处的计数器中。

以上是来自 Google 的随机图片,用于展示示例。我希望能够自定义共享描述和图像,但是我不确定是否可以在没有 Facebook API 密钥的情况下进行设置?

它们只是与此时此刻样式的链接;

<div class="ImgWrap">
    <a class="MedBtn" href="#" id="Facebook-Australia" original-title="Click to share on Facebook"></a>
    <a class="MedBtn" href="#" id="Twitter-Australia" original-title="Click to share on Twitter"></a>
    <a class="MedBtn" href="#" id="GooglePluss-Australia" original-title="Click to share on Google+"></a>
</div>

我之所以只谈 Facebook,主要是因为对 Facebook 比较熟悉,虽然我想对 Tweet 和 Google+ 做类似的事情。

感谢您花时间跟进我的问题以及任何帮助和/或建议。

最好的问候,

提姆

【问题讨论】:

    标签: php javascript facebook twitter google-plus


    【解决方案1】:

    有很多 jquery 插件已经完成了你需要的功能......

    http://sharrre.com/ 为例,如下所示:

    http://sharrre.com/example1.html

    您可以修改 CSS 以获得您想要的最终结果。希望这在某种程度上有所帮助。

    【讨论】:

    • 我下载了文件,上传了文件,没有进行任何编辑,结果如下:tornhq.com/WorkingOn/InteractiveMap/share/index.html - 正如他们网站上所解释的那样,这非常有问题。
    • 因为你在一个安全的服务器上,你必须从一个安全的位置调用 jQuery... 将代码顶部的 jQuery 替换为:https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
    • 我什至没有注意到这个指向 Google 上 JQuery 的链接,无论如何,更新后没有任何变化,因为您现在可以在实时版本中查看。最好的问候,蒂姆
    【解决方案2】:

    这是一个小例子:

    FB.ui({
        method: 'feed',
        name: '<TITLE>',
        link: '<YOUR_LINK>',
        picture: '<IMG_URL>',
        caption: '<CAPTION>',
        description: '<DESCRIPTION>',
        message: '<MESSAGES>'
        },
        function(response) {
            if (response && response.post_id) {
                $.ajax({ 
                    type: 'POST',
                    url: '<FILE.PHP>'
                    data: {
                        // PAGE_DATA - The page id, or something which links the actual page and his share's count
                        postData: <PAGE_DATA>
                    },
                    dataType: 'json',
                    success: function (response) {
                        if (response.error)
                            return false;
                        // As I said, you must adapt your HTML / CSS
                        var actualCount = $('.MedBtn.count[data-type="fb-share"]');
                        actualCount.text(parseInt(actualCount.text() + 1));
                    };
                });
            }
        }
    );
    

    您可以在此处查看结果(示例):http://jsfiddle.net/AeqQj/

    【讨论】:

    • 我不明白您提供的代码/JSFiddle。我理解顶部允许我将详细信息添加到要共享的内容中(我可以在一页中有十几个这样的内容吗?),但是我不确定其余的是什么,我认为它是提交到数据库一旦确认他们已共享但在您的示例中没有链接,它只是一个数字?最好的问候,蒂姆
    • 提供的 JSFiddle 向您展示了最终结果 :) 将 +1 添加到实际计数中。因此,根据示例,当用户成功共享您的页面时,会通过 ajax 请求调用一个 php 文件。 (是的,您必须编写这个,其中包含一个数据库连接和一个错误处理程序)。如果没有发生错误,则增加实际计数。无论如何,如果您对 PHP / SQL 不满意,保留原始按钮会更容易;)
    • 是的,我对 PHP/SQL 不太满意,但是现在比其他任何时候都好!例如,我如何在链接中调用上述代码,我需要在一页上有几十个,所以这也可以在外部文件中吗?最后,我不明白如何设置数据库、列和行。第 1 行第 1 行可以称为“Facebook”并在第 2 行第 1 行有更多行的地方分支吗?
    • 哇,他们真的需要为创建表做标记,我花了很长时间,但我终于在这里添加了一个关于数据库的问题:stackoverflow.com/questions/15734252/…
    【解决方案3】:

    您必须调整您的 HTML / CSS 以允许计数显示在白框中,无论如何,您可以在回调后递增它。

    if (response && response.post_id) {
      // Add +1 to the actual count / update the count in DB.
    }
    

    【讨论】:

    • 我实际上并不确定如何在 Facebook/Twitter/Google+ 上设置初始共享。还有,这个计数器,信息记录在哪里?我需要设置数据库吗?
    • 是的,您需要建立一个数据库来记录有关计数的信息,如果有必要,我会写一个小代码告诉您如何操作。
    • 天哪!可以这么说,这是我最薄弱的科目!设置数据库对我来说是一场噩梦,但是无论如何我都需要为其他按钮设置一个...谢谢您的帮助:)
    猜你喜欢
    • 2012-06-15
    • 2012-02-16
    • 2016-05-16
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多