|
|
/**
|
|
|
* 分享
|
|
|
* @author: xuqi<qi.xu@yoho.cn>
|
|
|
* @date: 2016/3/1
|
|
|
*/
|
|
|
|
|
|
var $ = require('yoho-jquery');
|
|
|
|
|
|
require('yoho-jquery-qrcode');
|
|
|
function shareBase(options) {
|
|
|
var openUrl = '';
|
|
|
var defOption = {
|
|
|
title: '',
|
|
|
url: window.location.href,
|
|
|
weixinUrl: '',
|
|
|
image: '',
|
|
|
desc: '',
|
|
|
channel: ''
|
|
|
};
|
|
|
var shareChannels = ['weibo', 'tweibo', 'qzone', 'renren', 'qq', 'douban','weixin'];
|
|
|
var sharebox;
|
|
|
var shareCon = '<i class="iconfont top "></i>';
|
|
|
|
|
|
defOption = $.extend(defOption, options);
|
|
|
|
|
|
if ($.inArray(defOption.channel, shareChannels) === -1) {
|
|
|
alert('不存在的分享平台!');
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
switch (defOption.channel) {
|
|
|
case 'weibo':
|
|
|
openUrl = 'http://service.weibo.com/share/share.php?url=' + defOption.url + '&title=' +
|
|
|
defOption.title + '&appkey=3739328910&searchPic=true&pic=' + defOption.image;
|
|
|
break;
|
|
|
case 'tweibo':
|
|
|
openUrl = 'http://share.v.t.qq.com/index.php?c=share&a=index&url=' + defOption.url + '&title=' +
|
|
|
defOption.title + '&appkey=c0af9c29e0900813028c2ccb42021792&pic=' + defOption.image;
|
|
|
break;
|
|
|
case 'qzone':
|
|
|
openUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + defOption.url + '&title=' +
|
|
|
defOption.title + '&desc=&summary=' + defOption.desc + '&site=YOHO!有货&pics=' + defOption.image;
|
|
|
break;
|
|
|
case 'renren':
|
|
|
openUrl = 'http://widget.renren.com/dialog/share?resourceUrl=' + defOption.url + '&srcUrl=' +
|
|
|
defOption.url + '&desc=' + defOption.desc + '&title=' + defOption.title + '&description=' +
|
|
|
defOption.desc + '&pic=' + defOption.image;
|
|
|
break;
|
|
|
case 'qq':
|
|
|
openUrl = 'http://connect.qq.com/widget/shareqq/index.html?url=' + defOption.url + '&desc=' +
|
|
|
defOption.desc + '&title=' + defOption.title.replace('%', '') + '&desc=&summary=' +
|
|
|
defOption.desc + '&site=YOHO!有货&pics=' + defOption.image;
|
|
|
break;
|
|
|
case 'weixin':
|
|
|
openUrl = 'http://s.jiathis.com/qrcode.php?url=' + defOption.weixinUrl + '&desc=' +
|
|
|
defOption.desc + '&title=' + defOption.title + '&description=' +
|
|
|
defOption.desc + '&pic=' + defOption.image;
|
|
|
break;
|
|
|
case 'douban':
|
|
|
openUrl = 'http://www.douban.com/share/service?href=' + defOption.url + '&text=' +
|
|
|
defOption.desc + '&image=' + defOption.image + '&title=' + defOption.title + '&comment=';
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (defOption.channel === 'weixin') {
|
|
|
if (!defOption.self) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$('.weixin').click(function() {
|
|
|
if ($('.weixin-share-box').hasClass('hide')) {
|
|
|
$('.weixin-share-box').removeClass('hide');
|
|
|
sharebox = defOption.self.closest('.share-to').find('.weixin-share-box');
|
|
|
|
|
|
if (sharebox.length > 0) {
|
|
|
shareCon += '<div class="con"><p class="pic">' +'<img src="' + openUrl + '" /></p><h2>分享到微信朋友圈</h2><p class="w">打开微信,使用“扫一扫“<br/>即可将网页分享到我的朋友圈。</p>' +
|
|
|
'</div>';
|
|
|
sharebox.find('div').length > 0 ? sharebox.show() : sharebox.html(shareCon).show();
|
|
|
}
|
|
|
} else {
|
|
|
$('.weixin-share-box').addClass('hide');
|
|
|
window.open(encodeURI(openUrl));
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function share(channel, self) {
|
|
|
var title = document.title.replace(/(^\s*)|(\s*$)/g, '');
|
|
|
var desc = $('#share-desc').val();
|
|
|
var image = $('#share-img').val();
|
|
|
var weixinUrl = $('#weixin-url').val();
|
|
|
|
|
|
|
|
|
$('.code').qrcode({
|
|
|
render: 'canvas', // table方式
|
|
|
size: 140, // 高度
|
|
|
text: $('.code').data('url')// 任意内容
|
|
|
if (channel === 'weibo' || channel === 'tqq') {
|
|
|
shareBase({
|
|
|
channel: channel,
|
|
|
title: title,
|
|
|
image: image
|
|
|
});
|
|
|
} else {
|
|
|
shareBase({
|
|
|
channel: channel,
|
|
|
title: title,
|
|
|
desc: desc,
|
|
|
image: image,
|
|
|
self: self,
|
|
|
weixinUrl: weixinUrl
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$('.share-wrapper').on('click', 'i', function() {
|
|
|
var $el = $(this),
|
|
|
type = $el.data('type');
|
|
|
|
|
|
share(type);
|
|
|
});
|
|
|
|
|
|
$('.weixin').hover(function() {
|
|
|
var $el = $(this),
|
|
|
type = $el.data('type'),
|
|
|
$weixinShareBox = $('.weixin-share-box');
|
|
|
|
|
|
share(type, $el);
|
|
|
}, function() {
|
|
|
$('.weixin-share-box').hide();
|
|
|
}) |
|
|
\ No newline at end of file |
...
|
...
|
|