一行代码解决百度分享无法动态传递参数问题

选了百度分享,之前也用的好好的,最近新添了个栏目,一个页面中的出现的多个图文都要能分享,然后百度的分享组件初始化一次后,就不能再改变了。

也就是分享过一次后,点击分享其它图片,分享的的仍然是第一次分享的内容,也就是只能实现一次分享。

网上找来找去找了几个小时也没找到方法,百度文档看来看去也看不出个所以然,持之不行的努力下,终于从互联网这个大海中找到了答案

http://www.cnblogs.com/floater/p/5558289.html

链接如上和我遇到的问题一毛一样,非常感谢这篇博客的作者!

原文

对与 Ajax 动态加载内容 百度分享按钮无效的解决办法

由于百度分享代码只会执行一次,对于之后 ajax 动态加载内容(例如瀑布流)中的分享按钮,获取不到,也无法为按钮注册事件。
因此需要重新初始化百度分享组件。官方文档中并未对此加以说明,查看 share.js 源代码,找到初始化函数。

    _bd_share_main.init

放到 Chrome 控制台执行一下

    window._bd_share_main.init();

返回 undefined ,看来就是它没错了。
将 window._bd_share_main.init(); 这句代码加入到内容生成函数之后,每次内容加载完成后,重新初始化百度分享组件。

***********************************************我的应用************************************************

function baidu_share(title, cover, url) {alert("11");
				window._bd_share_config = {
						common : {
							bdText : title,
							bdDesc : '',
							bdUrl : url,
							bdPic : cover
						},
						share : [ {
							"tag" : "share_1",
							"bdSize" : 24,
						} ],
						image : [ {
							viewType : 'list',
							viewPos : 'top',
							viewColor : 'black',
							viewSize : '16',
							viewList : [ 'qzone', 'tsina', 'weixin', 'sqq', 'tieba' ]
						} ]
					}
					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)];
window._bd_share_main.init();
		}
放在最后就好了,第一次调用完了,初始化一次就可以了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值