1. 程式人生 > >百度分享--分享按鈕的實現

百度分享--分享按鈕的實現

百度分享程式碼:<%@ page contentType="text/html;charset=UTF-8"%>
<div class="bdsharebuttonbox">
 <a href="#" class="bds_more" data-cmd="more"></a><a href="#"
  class="bds_qzone" data-cmd="qzone" title="分享到QQ空間"></a><a href="#"
  class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a href="#"
  class="bds_tqq" data-cmd="tqq" title="分享到騰訊微博"></a><a href="#"
  class="bds_renren" data-cmd="renren" title="分享到人人網"></a><a href="#"
  class="bds_weixin" data-cmd="weixin" title="分享到微信"></a><a href="#"
  class="bds_douban" data-cmd="douban" title="分享到豆瓣網"></a>
</div>
<script>
 window._bd_share_config = {
  "common" : {
   "bdSnsKey" : {},
   "bdText" : "",
   "bdMini" : "2",
   "bdMiniList" : false,
   "bdPic" : "",
   "bdStyle" : "0",
   "bdSize" : "24"
  },
  "share" : {}
 };
 with (document)
  0[(getElementsByTagName('head')[0] || body)
    .appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='
    + ~(-new Date() / 36e5)];
</script>
</div>
要注意的是要加上class="bdsharebuttonbox" 屬性,class="bds_more" data-cmd="more"這些屬性都要加上。注:只有版本號高於2.0的程式碼才支援自定義開發,如果您已安裝過百度分享,請先檢測版本號是否符合,再參考此文件,謝謝。

一、概述

百度分享程式碼已升級到2.0,本頁將介紹新版百度分享的安裝配置方法,請點選左側列表檢視相關章節。

二、程式碼結構

分享程式碼可以分為三個部分:HTML、設定和js載入,示例如下:

程式碼結構如下:

<div class="bdsharebuttonbox" data-tag="share_1">
	<!-- 此處新增
展示按鈕
--> </div> <script> window._bd_share_config = { //此處新增分享具體設定 } //以下為js載入部分 with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion='+~(-new Date()/36e5)]; </script>

三、按鈕標籤

按鈕標籤程式碼

<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>

說明:

只有普通頁面分享需要按鈕標籤。劃詞分享、圖片分享無需新增HTML結構。

HTML結構可以放在body的任意位置,可複製多份。

class="bdsharebuttonbox" 部分為dom選擇器,請勿改動。

data-tag屬性為分享按鈕標識,用於實現同一頁面中多分享按鈕不同配置,詳見設定部分

data-cmd屬性為分享目標標識,取值請參見:分享媒體id對應表。此外值為more時點選展現更多彈窗,值為count時展現分享數。

HTML程式碼中其他部分均可自定義。

四、自定義設定

設定部分結構如下,如不需要某項功能,刪除相應的配置項即可。

設定:

<script>
	window._bd_share_config = {
		common : {
			//此處放置通用設定
		},
		share : [
			//此處放置分享按鈕設定
		],
		slide : [
			//此處放置浮窗分享設定
		],
		image : [
			//此處放置圖片分享設定
		],
		selectShare : [
			//此處放置劃詞分享設定
		]
	}
</script>

4.1 通用設定

通用設定將作用於所有分享型別,可將通用設定放於此處,如分享內容、分享url等。

通用設定

<script>
	window._bd_share_config = {
		common : {		
			bdText : '',	
			bdDesc : '',	
			bdUrl : '', 	
			bdPic : '',		
			...
		}
	}
</script>

通用設定項解析:

配置項名稱值型別格式和取值描述
bdTextstring自定義分享的內容
bdDescstring自定義分享的摘要
bdUrlstring自定義分享的Url地址
bdPicstring自定義分享的圖片
bdSignstringon|off|normal是否進行迴流統計。
'on': 預設值,使用正常方式掛載迴流簽名(#[數字簽名])
'off': 關閉數字簽名,不統計迴流量
'normal': 使用&符號連線數字簽名,不破壞原始url中的#錨點
bdMiniint1|2|3下拉浮層中分享按鈕的列數
bdMiniListarray['qzone','tsina',...]自定義下拉浮層中的分享按鈕型別和排列順序。詳見分享媒體id對應表
onBeforeClickfunctionfunction(cmd,config){}在使用者點選分享按鈕時執行程式碼,更改配置。
cmd為分享目標id,config為當前設定,返回值為更新後的設定。
onAfterClickfunctionfunction(cmd){}在使用者點選分享按鈕後執行程式碼,cmd為分享目標id。可用於統計等。
bdPopupOffsetLeftint正|負數下拉浮層的y偏移量
bdPopupOffsetTopint正|負數下拉浮層的x偏移量

4.2 分享按鈕設定

分享按鈕設定的值為陣列或物件,值為陣列時可對多個分享按鈕應用不同的設定。

分享按鈕設定

<script>
	window._bd_share_config = {
		share : [{
			"tag" : "share_1",
			"bdSize" : 32,
			...
		},{
			"tag" : "share_2",
			"bdSize" : 16,
			...
		}]
	}
</script>

分享按鈕配置項解析:

配置項名稱值型別格式和取值描述
tagstring與data-tag一致表示該配置只會應用於data-tag值一致的分享按鈕。
如果不設定tag,該配置將應用於所有分享按鈕。
bdSizeint16|24|32分享按鈕的尺寸
bdCustomStylestring樣式檔案地址自定義樣式,引入樣式檔案

4.3 浮窗分享設定

浮窗分享設定的值為陣列或物件,值為陣列時可在頁面顯示多個分享浮窗。

浮窗分享設定

<script>
	window._bd_share_config = {
		slide : [{	   
			bdImg : 0,
			bdPos : "right",
			bdTop : 100
		},{
			bdImg : 0,
			bdPos : "left",
			bdTop : 100
		}]
	}
</script>

浮窗分享設定項解析:

配置項名稱值型別格式和取值描述
bdImgstring0|1|2|3|4|5|6|7|8分享浮窗圖示的顏色。
bdPosstringleft|right分享浮窗的位置
bdTopint分享浮窗與可是區域頂部的距離(px)

4.4 圖片分享設定

圖片分享設定的值為陣列或物件,值為陣列時可對圖片應用不同的設定。

圖片分享設定

<script>
	window._bd_share_config = {
		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']
		}]
	}
</script>

圖片分享設定項解析:

配置項名稱值型別格式和取值描述
tagstring與data-tag一致表示該配置只會應用於data-tag值一致的圖片。如果不設定tag,該配置將應用於所有圖片。
viewTypestringlist|collection圖片分享按鈕樣式。
viewPosstringtop|bottom圖片分享展示層的位置。
viewColorstringblack|white圖片分享展示層的背景顏色。
viewSizeint16|24|32圖片分享展示層的圖示大小。
viewListarray['qzone','tsina',...]自定義展示層中的分享按鈕型別和排列順序。詳見分享媒體id對應表

4.5 劃詞分享設定

劃詞分享設定

<script>
	window._bd_share_config = {
		selectShare : [{
			"bdSelectMiniList" : ['qzone','tqq','kaixin001','bdxc','tqf'],
			"bdContainerClass" : "容器class名"
		}]
	}
</script>

圖片分享設定項解析:

配置項名稱值型別格式和取值描述
bdSelectMiniListarray['qzone','tsina',...]自定義彈出浮層中的分享按鈕型別和排列順序。詳見分享媒體id對應表
bdContainerClassstringmyclassname自定義劃詞分享的啟用區域

五、引入javascript

載入js

<script>
	with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion='+~(-new Date()/36e5)];
</script>

說明:

請將程式碼放於</body>之前。

六、完整示例程式碼

完整程式碼如下,請根據自身情況修改。

完整示例程式碼

<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>
<script>
	window._bd_share_config = {
		common : {
			bdText : '自定義分享內容',	
			bdDesc : '自定義分享摘要',	
			bdUrl : '自定義分享url地址', 	
			bdPic : '自定義分享圖片'
		},
		share : [{
			"bdSize" : 16
		}],
		slide : [{	   
			bdImg : 0,
			bdPos : "right",
			bdTop : 100
		}],
		image : [{
			viewType : 'list',
			viewPos : 'top',
			viewColor : 'black',
			viewSize : '16',
			viewList : ['qzone','tsina','huaban','tqq','renren']
		}],
		selectShare : [{
			"bdselectMiniList" : ['qzone','tqq','kaixin001','bdxc','tqf']
		}]
	}
	with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion='+~(-new Date()/36e5)];
</script>

七、分享媒體id對應表

分享媒體id對應表

名稱ID
一鍵分享mshare
QQ空間qzone
新浪微博tsina
人人網renren
騰訊微博tqq
百度相簿bdxc
開心網kaixin001
騰訊朋友tqf
百度貼吧tieba
豆瓣網douban
搜狐微博tsohu
百度新首頁bdhome
QQ好友sqq
和訊微博thx
百度雲收藏bdysc
美麗說meilishuo
蘑菇街mogujie
點點網diandian
花瓣huaban
堆糖duitang
和訊hx
飛信fx
有道雲筆記youdao
麥庫記事sdo
輕筆記qingbiji
人民微博people
新華微博xinhua
郵件分享mail
我的搜狐isohu
搖籃空間yaolan
若鄰網wealink
天涯社群ty
Facebookfbook
Twittertwi
linkedinlinkedin
複製網址copy
列印print
百度個人中心ibaidu
微信weixin
股吧iguba

八、工具

檢測分享程式碼版本

	//開啟已安裝分享程式碼的頁面,在控制檯中執行:
	javascript:b=(window.bdShare||window._bd_share_main);alert(b?'\u5F53\u524D\u9875\u9762\u7684\u5206\u4EAB\u4EE3\u7801\u7248\u672C\u4E3A\uFF1A'+(b.version||'1.0'):'\u5F53\u524D\u9875\u9762\u6CA1\u6709\u5B89\u88C5\u5206\u4EAB\u4EE3\u7801\u3002')

注意:

您在使用自定義屬性,請您將自定義內容裡面涉及到英文單引號(')進行(\')轉義,以免出現問題