我想在我的新网站上设置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本身!
你对我有什么建议吗?
答案 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分享了我的代码供您参考。