示例代码:百度分享动态传递参数
```javascript function shareToBaidu(title, desc, url) { const shareUrl = `https://sns-share.baidu.com/?title=${encodeURIComponent(title)}&desc=${encodeURIComponent(desc)}&url=${encodeURIComponent(url)}`; window.open(shareUrl, '_blank'); } // 使用示例 const title = '文章标题'; const desc = '文章描述'; const url = 'https://example.com/article'; shareToBaidu(title, desc, url); ```
由于百度分享代码只会执行一次,对于之后 AJAX 动态加载内容(例如瀑布流)中的分享按钮,获取不到,也无法为按钮注册事件。
因此需要重新初始化百度分享组件。官方文档中并未对此加以说明,查看 share.js 源代码,找到初始化函数。
_bd_share_main.init
放到 Chrome 控制台执行一下
window._bd_share_main.init();
返回 undefined ,看来就是它没错了。
将 window._bd_share_main.init(); 这句代码加入到内容生成函数之后,每次内容加载完成后,重新初始化百度分享组件。
functionbaidu_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='+~(-newDate()/36e5)];window._bd_share_main.init();}
放在最后就好了,第一次调用完了,初始化一次就可以了