百度分享share.baidu各配置详解及解决https支持问题
实现基本的百度分享
线上文档(已不可用,暂留作记录吧):http://share.baidu.com/code/advance#toid
线上demo:https://my.weblf.cn/xly/demo/web_share.html
HTML结构
<div class="bdsharebuttonbox" data-tag="share_1">
<a class="bds_mshare" data-cmd="mshare"></a>
<a class="bds_qzone" data-cmd="qzone" href="#"></a>
<a class="bds_tsina" data-cmd="tsina"></a>
<a class="bds_baidu" data-cmd="baidu"></a>
<a class="bds_renren" data-cmd="renren"></a>
<a class="bds_tqq" data-cmd="tqq"></a>
<a class="bds_more" data-cmd="more">更多</a>
<a class="bds_count" data-cmd="count"></a>
</div>
在页面中插入JS配置
<script>
window._bd_share_config = {
"common": {
"bdText" : '这是分享的标题',
"bdComment" : '我是通用分享设置,会出现在发送给QQ好友里的描述',
//"bdMini" : "2",//按钮排列2行
//"bdMiniList" : false,//按钮的数组
"bdPic" : "/img/weixin.png",//分享的图像地址
"bdStyle" : "0",//按钮样式
"bdSize" : "32",//按钮大小
"bdUrl" : 'https://www.wubin.work',//分享的地址
"bdDesc":'给你的好友留一句话吧',
},
"share": {}
};
with(document)0[(getElementsByTagName('head')[0] || body)
.appendChild(createElement('script'))
.src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=593.js?cdnversion=' + ~(-new Date() / 36e5)];
</script>
这段代码会自动加载一段js与css。
说明:
- HTML结构可以放在body的任意位置,可复制多份。
- class="bdsharebuttonbox" 部分为dom选择器,请勿改动。
- data-tag属性为分享按钮标识,用于实现同一页面中多分享按钮不同配置
- data-cmd属性为分享目标标识此外值为more时点击展现更多弹窗,值为count时展现分享数。
- HTML代码中其他部分均可自定义。
在线案例:share-http
百度分享自定义配置
设置部分结构如下,如不需要某项功能,删除相应的配置项即可。
<script>
window._bd_share_config = {
common : {
//此处放置通用设置
},
share : [
//此处放置分享按钮设置
],
slide : [
//此处放置浮窗分享设置
],
image : [
//此处放置图片分享设置
],
selectShare : [
//此处放置划词分享设置
]
}
</script>
通用设置
通用设置将作用于所有分享类型,可将通用设置放于此处,如分享内容、分享url等。
window._bd_share_config = {
common : {
bdText : '',
bdDesc : '',
bdUrl : '',
bdPic : '',
...
}
}
配置项名称 | 值类型 | 格式和取值 | 描述 |
---|---|---|---|
bdText | string | 自定义 | 分享的内容 |
bdDesc | string | 自定义 | 分享的摘要 |
bdUrl | string | 自定义 | 分享的Url地址 |
bdPic | string | 自定义 | 分享的图片 |
bdSign | string | on|off|normal | 是否进行回流统计。'on': 默认值,使用正常方式挂载回流签名(#[数字签名])'off': 关闭数字签名,不统计回流量'normal': 使用&符号连接数字签名,不破坏原始url中的#锚点 |
bdMini | int | 1|2|3 | 下拉浮层中分享按钮的列数 |
bdMiniList | array | ['qzone','tsina',...] | 自定义下拉浮层中的分享按钮类型和排列顺序。详见分享媒体id对应表 |
onBeforeClick | function | function(cmd,config){} | 在用户点击分享按钮时执行代码,更改配置。cmd为分享目标id,config为当前设置,返回值为更新后的设置。 |
onAfterClick | function | function(cmd){} | 在用户点击分享按钮后执行代码,cmd为分享目标id。可用于统计等。 |
bdPopupOffsetLeft | int | 正|负数 | 下拉浮层的y偏移量 |
bdPopupOffsetTop | int | 正|负数 | 下拉浮层的x偏移量 |
分享按钮设置
分享按钮设置的值为数组或对象,值为数组时可对多个分享按钮应用不同的设置。
share : [
{
"tag" : "share_1",
"bdSize" : 32,
...
},{
"tag" : "share_2",
"bdSize" : 16,
...
}
]
分享按钮配置项解析:
配置项名称 | 值类型 | 格式和取值 | 描述 |
---|---|---|---|
tag | string | 与data-tag一致 | 表示该配置只会应用于data-tag值一致的分享按钮。如果不设置tag,该配置将应用于所有分享按钮。 |
bdSize | int | 16|24|32 | 分享按钮的尺寸 |
bdCustomStyle | string | 样式文件地址 | 自定义样式,引入样式文件 |
浮窗分享设置
浮窗分享设置的值为数组或对象,值为数组时可在页面显示多个分享浮窗。
slide : [
{
bdImg : 0,
bdPos : "right",
bdTop : 100
},{
bdImg : 0,
bdPos : "left",
bdTop : 100
}
]
浮窗分享设置项解析:
配置项名称 | 值类型 | 格式和取值 | 描述 |
---|---|---|---|
bdImg | string | 0|1|2|3|4|5|6|7|8 | 分享浮窗图标的颜色。 |
bdPos | string | left|right | 分享浮窗的位置 |
bdTop | int | 分享浮窗与可是区域顶部的距离(px) |
图片分享设置
图片分享设置的值为数组或对象,值为数组时可对图片应用不同的设置。
image : [{
"tag" : "img_1",
viewType : 'list',
viewPos : 'top',
viewColor : 'black',
viewSize : '16',
viewList : ['qzone','tsina','huaban','tqq','renren']
},{
"tag" : "img_2",
viewType : 'list',
viewPos : 'top',
viewColor : 'black',
viewSize : '16',
viewList : ['qzone','tsina','huaban','tqq','renren']
}]
图片分享设置项解析:
配置项名称 | 值类型 | 格式和取值 | 描述 |
---|---|---|---|
tag | string | 与data-tag一致 | 表示该配置只会应用于data-tag值一致的图片。如果不设置tag,该配置将应用于所有图片。 |
viewType | string | list|collection | 图片分享按钮样式。 |
viewPos | string | top|bottom | 图片分享展示层的位置。 |
viewColor | string | black|white | 图片分享展示层的背景颜色。 |
viewSize | int | 16|24|32 | 图片分享展示层的图标大小。 |
viewList | array | ['qzone','tsina',...] | 自定义展示层中的分享按钮类型和排列顺序。详见分享媒体id对应表 |
划词分享设置
selectShare : [{
"bdSelectMiniList" : ['qzone','tqq','kaixin001','bdxc','tqf'],
"bdContainerClass" : "容器class名"
}]
配置项名称 | 值类型 | 格式和取值 | 描述 |
---|---|---|---|
bdSelectMiniList | array | ['qzone','tsina',...] | 自定义弹出浮层中的分享按钮类型和排列顺序。详见分享媒体id对应表 |
bdContainerClass | string | myclassname | 自定义划词分享的激活区域 |
完整案例和媒体id对应表
完整的参考案例:share-http-2
百度分享媒体id对应表:百度分享媒体id对应表
分享支持HTTPS
百度分享目前已经不维护了,但是很多老的项目升级到了https,然后问题就出现了,百度分享并不支持https!(之所以不支持 https是因为加载的 static资源来自http请求)
解决办法,把那些资源拿过来,放到自己的网站根目录就行了。
将本文附件中的压缩包下载,解压后得到的static文件夹上传到网站根目录(注:域名/static)。
然后再把http://bdimg.share.baidu.com 的路径去掉就行了,最终效果如下(参考):
//百度分享
window._bd_share_config = {
"common": {
"bdSnsKey": {},
"bdText": "",
"bdMini": "2",
"bdMiniList": false,
"bdPic": "",
"bdStyle": "0",
"bdSize": "16"
}, "slide": {"type": "slide", "bdImg": "6", "bdPos": "left", "bdTop": "100"}
};
with (document)0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).
src = '/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];
在线案例效果:share-https
也可以修改文件包中的share.js文件中的jscfg:{domain:{staticUrl:"/你的目录/js/.../"}} 实现目录定制化