社区网站功能实现系列(二):社区内容分享到别的SNS
我们在逛社区的时候经常会看到社区里面的某一个相册或者视频、博客下有一个分享的块,如下图:
当你点其中一个按钮,如QQ空间,这篇内容就会被分享到你的QQ空间里面(若你没有登录QQ空间,则会提示你登录)。分享成功之后,这个就会作为你在QQ空间里面的一个分享。下面我就来讲讲具体实现吧。
其实很简单,每一个稍微有点名气的社区,都会有这么一个链接,它接收一个url和一个title,然后就会把这条对应的信息做成为它下面的一个分享,比如人人网,它的这个链接是:http://share.renren.com/share/buttonshare.do?link=x&title=y 很明显,这里的x是url,y是title。
了解了这点,那解决这个问题就太容易了。
下面就给出这些个SNS的share链接的js实现。
function ShareTo(obj)
{
//这两个变量是在页面初始化的时候赋值的
var shareuri = encodeURIComponent(document.getElementById("<%=share_url.ClientID %>").value);
var sharetitle = document.getElementById("<%=share_title.ClientID %>").value;
var target_url;
switch(obj)
{
case "qqzone":
target_url = "http://rc.qzone.qq.com/myhome/share/#action=post&url="+ shareuri;
break;
case "baidu":
target_url="http://apps.hi.baidu.com/share/?url="+shareuri;
break;
case "renren":
target_url="http://share.renren.com/share/buttonshare.do?link="+shareuri+"&title="+sharetitle;
break;
case "kaixin":
target_url="http://www.kaixin001.com/repaste/share.php?rtitle="+sharetitle+"&rcontent="+sharetitle+"&rurl="+shareuri;
break;
case "douban":
target_url="http://www.douban.com/recommend/?url="+shareuri+"&title="+sharetitle;
break;
case "facebook":
target_url="http://www.facebook.com/sharer.php?u="+shareuri+"&t="+sharetitle;
break;
case "twitter":
target_url="http://twitter.com/home?status="+sharetitle+" - "+shareuri;
break;
case "buzz":
target_url="http://www.google.com/reader/link?url="+shareuri+"&title="+sharetitle;
break;
case "digg":
target_url="http://digg.com/submit?phase=2&url="+shareuri+"&title="+sharetitle;
break;
}
window.open(target_url);
}
实现太简单,贻笑大方了。