技术帝的平台展示,网站建设、网站推广、SEO技术、网站优化、电子商务推广、平面美工和软件测试等技术干货分享。

百度分享通过ajax或js动态调用

程序技术 abel-lan 197℃ 0评论

摘要

通过ajax和js动态调用百度分享时,第二次及之后操作无法正常显示。解决方法是在调用百度分享js代码之前加if(window._bd_share_main) delete(window._bd_share_main);

问题描述

最近在做项目时,通过ajax方式或用js click事件动态加载百度分享功能时,出现第一次点击可以正常打开,第二次及之后点击就无法正常显示及使用分享功能。高人请跳过解决过程直接看解决方法。

解决过程

遇到问题后,首先在网上找解决方法,找到的几乎都是调用window._bd_share_main.init()方法进行初始化。但使用该方法后,提示“Uncaught TypeError: Cannot read property ‘init’ of undefined”,该方法无法解决问题。

既然网上找不到解决方法,就自己动手解决啦。通过不断的调试测试,发现第二次无法正常显示,是由于百度分享对象部分方法没有执行,导致分享代码div标签的“data-bd-bind”属性没有添加。既然是百度分享对象部分方法没有执行,那么就在执行分享代码之前,判断是否有百度分享对象,存在则删除,通过测试,该方法可行。

解决方法

在调用百度分享js代码之前加入以下代码:

 if(window._bd_share_main) delete(window._bd_share_main);

转载请注明:半亩方塘 » 百度分享通过ajax或js动态调用

赞 (13)支付宝扫码打赏微信扫码打赏分享
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址