Skip to content

Instantly share code, notes, and snippets.

@dongyuwei
Created December 12, 2013 02:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dongyuwei/7922088 to your computer and use it in GitHub Desktop.
Save dongyuwei/7922088 to your computer and use it in GitHub Desktop.
chinese social share. see https://github.com/popomore/social-share
(function($) {
var supportedServices = {
'weibo': 'http://service.weibo.com/share/share.php?title={{title}}&url={{url}}&pic={{pic}}',
'douban': 'http://shuo.douban.com/!service/share?name={{title}}&href={{url}}&image={{pic}}',
'kaixin': 'http://www.kaixin001.com/repaste/bshare.php?rtitle={{title}}&rurl={{url}}',
'netease': 'http://t.163.com/article/user/checkLogin.do?info={{title}}',
'qq_t': 'http://v.t.qq.com/share/share.php?title={{title}}&url={{url}}&pic={{pic}}',
'qq_zone': 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?title={{title}}&url={{url}}&pics={{pic}}',
'renren': 'http://share.renren.com/share/buttonshare.do?title={{title}}&link={{url}}',
'sohu': 'http://t.sohu.com/third/post.jsp?title={{title}}&url={{url}}&content=utf-8',
'facebook': 'http://www.facebook.com/sharer.php?t={{title}}&u={{url}}',
'twitter': 'https://twitter.com/intent/tweet?text={{title}}&url={{url}}'
};
var uniformParams = ['service', 'title', 'url', 'pic'];
function getData(el) {
var data = {};
$.each(uniformParams,function(i, key){
var value = el.data(key);
if (value){
data[key] = value;
}
});
return data;
}
function buildShareUrl(serviceName, option) {
var service = supportedServices[serviceName];
if (!serviceName) {
throw new Error('Should specify serviceName, such as weibo');
}
if (!service) {
throw new Error('"' + serviceName + '" do not exist');
}
return service.replace(/{{(.*?)}}/g, function(a, m) {
return option[m] ? encodeURIComponent(option[m]) : '';
});
}
$.fn.share = function(options) {
this.each(function(i,el){
el = $(el);
var data = $.extend({}, (options || {}), getData(el));
el.click(function(){
window.open(buildShareUrl(data.service, data));
});
});
};
})($);
@dongyuwei
Copy link
Author

<div class="social-share pull-right" 
    data-title='{{{title}}}' 
    data-url='{{{listingLink}}}'
    data-pic='{{{listingImg}}}'>
    <i class="share weibo" title='新浪微博' data-service="weibo"></i>
    <i class="share qq_t"  title='腾讯微博' data-service="qq_t"></i>
    <i class="share qq_zone" title='qq空间' data-service="qq_zone"></i>
    <i class="share renren"  title='人人网' data-service="renren"></i>
    <i class="share kaixin" title='开心网' data-service="kaixin"></i>
    <i class="share sohu" title='搜狐微博' data-service="sohu"></i>
    <i class="share netease" title='网易微博' data-service="netease"></i>
    <i class="share douban" title='豆瓣' data-service="douban"></i>
    <i class="share facebook" title='facebook' data-service="facebook"></i>
    <i class="share twitter" title='twitter' data-service="twitter"></i>
</div>
(function(){
    var socialShareEl = $('.social-share');
    if(socialShareEl.length !== 0){
        $('.social-share .share').share({
            title   : socialShareEl.data('title'),
            url     : socialShareEl.data('url'),
            pic    : socialShareEl.data('pic')
        });
    }
})();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment