动态网址的Facebook分享按钮

时间:2014-01-19 10:40:07

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

我有一个带有重写网址的动态页面。我想在其中添加一个facebook分享按钮。因此用户点击分享按钮即可共享页面。但facebook分享开发者页面要求提供特定网址。不确定如何共享动态生成的URL。

这里我发现了一些捕获网址的代码。但我不知道,如何将其包含在Facebook代码中。

jQuery(document).ready(function() {
    var href = jQuery(location).attr('href');
    var url = jQuery(this).attr('title');
    jQuery('#current_title').html(href);
    jQuery('#current_url').html(url);
});

Facebook分享按钮的HTML部分

<div class="fb-share-button" data-href="http://developers.facebook.com/docs/plugins/" data-type="button"></div>

请帮助

非常感谢

6 个答案:

答案 0 :(得分:23)

这对我有用:

<script language="javascript">
    function fbshareCurrentPage()
    {window.open("https://www.facebook.com/sharer/sharer.php?u="+escape(window.location.href)+"&t="+document.title, '', 
    'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
    return false; }
</script>

然后使用链接调用代码:

<a href="javascript:fbshareCurrentPage()" target="_blank" alt="Share on Facebook">Facebook</a>

如果您希望它是直接链接而不是在窗口中打开,请在函数中使用它:

window.location.href="https://www.facebook.com/sharer/sharer.php?u="+escape(window.location.href)+"&t="+document.title;


可能的jquery解决方案:

<a class="fbsharelink" data-shareurl="YOURLINK">Facebook</a>

$('.fbsharelink').click( function() 
{
    var shareurl = $(this).data('shareurl');
    window.open('https://www.facebook.com/sharer/sharer.php?u='+escape(shareurl)+'&t='+document.title, '', 
    'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
    return false;
});

答案 1 :(得分:10)

请勿在网址中输入任何内容“删除现有链接(https://developers.facebook.com/docs/plugins/)”,并像平常一样在页面中包含代码。

喜欢或分享按钮会选择当前页面的链接

答案 2 :(得分:4)

使用此功能让Facebook的api重新分析您的页面

  FB.XFBML.parse();

答案 3 :(得分:3)

您可以使用

获取网址

var href = window.location

您可以使用

获取页面标题

var title = document.title

不需要为这些简单的任务使用jQuery。

要使FB共享按钮动态化,您必须重新加载或编辑它的数据属性以匹配当前值。此外,在快速查看GB共享按钮的文档后,没有选项可以将标题设置为HREF。可以找到文档here

因此,对于您的示例,在更改URL后,还要运行以下代码:

jQuery(document).on('ready', function($){
    var url = window.location;  
    $('.fb-share-button').attr('data-href', url);
});

答案 4 :(得分:0)

我认为最简单的解决方案就是这个。它适用于最复杂的网址,假设这是您的网址

http://dramatainment.com/videos.php?v=000014

这是您修改Facebook分享按钮代码的方法

<div class="fb-share-button" data-href="http://dramatainment.com/videos.php?v=<?php echo $v; ?>" data-layout="button" data-mobile-iframe="true"><a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fdramatainment.com%2Fvideos.php&amp;src=sdkpreparse">Share</a></div>

刚添加了像这样的动态网址

data-href="http://dramatainment.com/videos.php?v=<?php echo $v; ?>"

答案 5 :(得分:-1)

这也可以使用php

完成
<?php  
     $protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || 
     $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";  
     $CurPageURL = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];  
?>

<div class="fb-share-button" data-href=" <?php $CurPageURL ?> " data-layout="button_count" data-size="large">
   <a target="_blank" 
       href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2F
       <?php $CurPageURL ?>
       %2F&amp;src=sdkpreparse" 
       class="fb-xfbml-parse-ignore">Share
   </a>
</div>