百度分享异步加载问题、分页,无效果解决[通俗易懂]

百度分享异步加载问题、分页,无效果解决[通俗易懂]使用百度分享的时候,如果所涉及到的html部分是后加载进来的,如ajax等异步请求成功后,加载进来,那么百度分享就有可能出现错误。我在使用的时候,遇到了两个问题。在这里记录一下。1、无法把所需要分享的内容传值到百度分享里。  百度分享的配置里有两个值,bdText,bdDesc,这两个内容,分别分享标题和内容。  内容是异步加载进来的,所以在百度分享相关代码是在加载成功后运

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
使用百度分享的时候,如果所涉及到的html部分是后加载进来的,如ajax等异步请求成功后,加载进来,那么百度分享就有可能出现错误。

我在使用的时候,遇到了两个问题。在这里记录一下。

1、无法把所需要分享的内容传值到百度分享里。

    百度分享的配置里有两个值,bdText,bdDesc,这两个内容,分别分享标题和内容。

    内容是异步加载进来的,所以在百度分享相关代码是在加载成功后运行的。但是,在使用中,始终无法将想分享的内容,传值给bdText,bdDesc。

    后来,在百度分享的api里发现了一个事件:onBeforeClick,在分享前的点击事件。于是我就先获取鼠标所在元素,然后在onBeforeClick事件里,根据鼠标所在元素定位获取到所需要分享的内容,进行传值。

2、分页时,百度分享无效。

   当点击到第二个及以后时,百度分享无效。通过百度查,网上 hupan508给出了解决方案。因为百度分享执行后,会创建全局的window.__bd_share_main,所以   需要在 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)];
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184643.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 三大运营商电话号码监测

    三大运营商电话号码监测Document

    2022年8月3日
    5
  • linux安装pycharm报错:Unable to detect graphics environment[通俗易懂]

    linux安装pycharm报错:Unable to detect graphics environment[通俗易懂]执行shpycharm.sh时,报错:StartupErrorUnabletodetectgraphicsenvironment解决方法:重新开启一个终端,以用户而非root身份登入,重新执行shpycharm.sh很神奇,但是成功了!

    2022年10月10日
    3
  • idea 2021.11.3 激活码_在线激活

    (idea 2021.11.3 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0…

    2022年3月28日
    49
  • 交换机上uplink端口的作用是什么_uplink怎么用的

    交换机上uplink端口的作用是什么_uplink怎么用的PoE交换机是如今安防行业使用很广泛的一种设备,因为它是是一种为远程交换机(如IP电话或摄像机)提供电力和数据传输的交换机,具有非常重要的作用。而在使用PoE交换机时,就有朋友咨询到,有的PoE交换机上标着PoE,另外也看到有的标着PoE+。那么,PoE交换机与PoE+有什么区别呢?接下来就由飞畅科技的小编来为大家详细介绍下吧!1、什么是PoE交换机PoE交换机由IEEE802.3af标准定义,…

    2022年10月4日
    3
  • NOIP 2012 文化之旅 题解[通俗易懂]

    NOIP 2012 文化之旅 题解[通俗易懂]来水一篇题解,我看洛谷上说的这道题的数据特别水,于是就写了很水的做法。题目:P1078[NOIP2012普及组]文化之旅-洛谷|计算机科学教育新生态(luogu.com.cn)题目背景本题是错题,后来被证明没有靠谱的多项式复杂度的做法。测试数据非常的水,各种玄学做法都可以通过(比如反着扫),不代表算法正确。因此本题题目和数据仅供参考。题目描述有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其

    2022年8月22日
    5
  • SNMPWALK 命令「建议收藏」

    SNMPWALK 命令「建议收藏」SNMPWALK是一个通过SNMPGET-NEXT类型PDU,实现对目标AGENT的某指定MIB分支信息进行完整提取输出的命令工作。命令行:snmpwalk[选项]agent[oid]选项参数:由于SNMP协议中,不同的协议版本存在不同的参数选项,以下参数按协议分开说明。1.   普通选项a)   –h   显示帮助b)   –v1|2c|3

    2022年6月16日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号