自从用了AJAX后,JS重新加载问题就如家常便饭般层出不穷啊。没有系统学习过js感觉亚历山大。
百度后,还是找到了解决办法。
百度分享创建了一个全局对象window._bd_share_main。通过window._bd_share_main.init()方法进行div标签的重新加载。
具体来讲就是在AJAX加载完成后在执行一下
window._bd_share_main.init();
百度分享,动态加载方案
var ele;
var bdTitle;
var bdAbstract;
$(document).mouSEOver(function (e) {
ele = e.target;
});
//设置分享
function beforeShareClick(cmd,config,bdTitle,bdAbstract) {
// 根据ele,获取 bdTitle,bdAbstract的值
//设置 config
if (shareTitle) {
config.bdText = bdTitle;
config.bdDesc = bdAbstract;
}
return config;
}
//百度分享代码,放入 ajax请求成功后执行
function baiduShare(){
if(window._bd_share_main){ //先执行初始化bdshare
window._bd_share_main.init();
}
window._bd_share_config = {
common: {
onBeforeClick: beforeShareClick,bdText: bdTitle,bdDesc: bdAbstract,bdUrl: window.location.href
}
};
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)];
}