onClick:在Facebook上分享图片

时间:2013-06-17 01:16:37

标签: javascript css image onclick

我想在我的新网站上设置onClick功能,以启动Facebook共享器。

以下是一些可能有助于理解我所说的内容的代码

<div id="mImageBox">
<img id='my_image' src='' width="auto" height="auto"/>
</div>

图像src是空白的,因为它是由另一个JavaScript函数通过使用“my_image”注入的

所以,我尝试用这种方法设置onClick函数:

<script>function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}</script>

<div id="mImageBox">
<a rel="nofollow" href="http://www.facebook.com/share.php?u=<;url>" onclick="return fbs_click()" target="_blank"><img id='my_image' src='' width="auto" height="auto"/></a>
</div>

onClick功能运行良好,但它链接到img所在的页面而不是img本身!

你对我有什么建议吗?

2 个答案:

答案 0 :(得分:14)

试试这个:

<div id="mImageBox">
<img id='my_image' src='' alt='' width="auto" height="auto" onclick="fbs_click(this)"/>
</div>

<script>
     function fbs_click(TheImg) {
     u=TheImg.src;
     // t=document.title;
    t=TheImg.getAttribute('alt');
    window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;
}
</script>

您无需使用&lt; a&gt;对于JS禁用的情况,标记(围绕&lt; img&gt;标记),因为在这种情况下,应该注入 src 属性的JS也不会起作用。

答案 1 :(得分:0)

自Facebook上个Javascript API 2.9自上周以来已经死了,上面的解决方案不再适用了(我花了半天时间才发现这个!!!)。 在v2.10中,FB.ui的图片参数不再存在。 但我找到了一种解决方法,为每个图像生成一个单独的URL参数,因此Facebook必须单独为每个共享图像刮取Open Graph数据。我在this post分享了我的代码供您参考。