fmj.me

FMJ.me

一个靠自学的菜鸟,只会html+css,JavaScript是什么鬼?php?我靠,好高大上!

冯美杰就是我。单纯的个人博客,只做记录,别无其他。

Powered By Z-BlogPHP,Theme By zblog模板

当前位置:网站首页 技术学习 正文

百度分享 自定义或者动态设置URL的方法

FMJ发布于3年前 (2016-12-16) 1899 浏览 0 评论

近期在修改一个主题,主题类型是适合笑话类的,在线分享开始用的是jiathis的api接口,在文章列表可以自定义分享url。但是一个客户却要修改這个在线分享为百度分享。

折腾了半天后终于搞完,分享何记录下。

修改前的效果(用的jiathis):

修改后的效果(用的百度分享):

下面说下经过:一开始去百度分享官网看文档,发现百度分享并不支持分享自定义或者动态设置URL。然后去搜索,搜到了“十有三”大神的这篇文章“http://shiyousan.com/post/635629910383368675”,按照此文操作出来一开始以为是无效的。

然后直接将他的源代码弄到本地测试,测试了半天发现原来分享的url是正确的,但是标题一直是当前页面的标题而不是指定url的标题,发现错误地方后找解决办法,大概弄懂了“十有三”大神的思路,然后自己折腾了下,终于成功,上代码:

html部分

<div class="bdsharebuttonbox">
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" data-id="文章唯一id" data-txt="文章标题"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" data-id="文章唯一id" data-txt="文章标题"></a>
<a href="#" class="bds_sqq" data-cmd="sqq" title="分享到QQ好友" data-id="文章唯一id" data-txt="文章标题"></a>
</div>

js部分:

 <script type="text/javascript">
        //全局变量,动态的文章ID
        var ShareId = "";        //绑定所有分享按钮所在A标签的鼠标移入事件,从而获取动态ID
        $(function () {
            $(".bdsharebuttonbox a").mouseover(function () {
                ShareId = $(this).attr("data-id");
                ShareTitle = $(this).attr("data-txt"); //我自行增加的文章标题
            });
        });        /* 
        * 动态设置百度分享URL的函数,具体参数
        * cmd为分享目标id,此id指的是插件中分析按钮的ID
        *,我们自己的文章ID要通过全局变量获取
        * config为当前设置,返回值为更新后的设置。
        */
        function SetShareUrl(cmd, config) {            
            if (ShareId) {
                config.bdUrl = "https://fmj.me/post" + ShareId +".html"; //這里要设置好指定url的格式    
                config.bdText = ShareTitle;  
            }            return config;
        }        //插件的配置部分,注意要记得设置onBeforeClick事件,主要用于获取动态的文章ID
        window._bd_share_config = {            "common": {
                onBeforeClick:SetShareUrl,"bdSnsKey":{},"bdText":"","bdMini":"2"
                ,"bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"
            }, "share": {}
        };        //插件的JS加载部分
        with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+ ~(-new Date() / 36e5)];    </script>

我的這个写的很简陋,请结合“http://shiyousan.com/post/635629910383368675”参考对照使用。

百度分享 自定义url

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

请填写验证码