首页 > 其他分享 >博客园评论区头像换页更新解决方案

博客园评论区头像换页更新解决方案

时间:2024-09-16 15:24:03浏览次数:1  
标签:function 头像 博客园 blog 换页 评论 var self

前言

博客园博客正文的评论区的每一条评论其实都是带用户头像链接的,因此有些博客主题利用这个链接,对评论新增了头像显示功能。

但是这部分功能只能在第一次加载页面时有效,一旦出现评论翻页、排序等操作,头像又没了。

为了解决这个问题 ,对#blog-comments-placeholder 这个元素进行改动监控,一旦有变动则再次执行一次头像设置函数。

实现过程

头像设置函数 setAvatar

/* 头像设置 */
setAvatar = function () {
    // 头像
    $.each($(".feedbackItem"), function (index, ele) {

        var self = $(ele);
        // 已经处理过了的则跳过
        if (self.find('comment_avatar_container').length > 0)
        {
            return;
        }
        
        // 这里自己定义需要如何设置评论区头像可自行修改
        var obj = self.find(".blog_comment_body");
        var id = obj.attr("id").split("_")[2];
        var blog = self.find('a[id^="a_comment_author"]');
        var blogUrl = blog.attr("href");
        var imgSrc =
            $("#comment_" + id + "_avatar").html() ||
            "http://pic.cnblogs.com/avatar/simple_avatar.gif";

        self.prepend(
            '<a class="comment_avatar_container" target="_blank" href="' +
            blogUrl +
            '"><img src="' +
            imgSrc +
            '" style="float:left;" class="comment_avatar"></a'
        );
        $(".feedbackListSubtitle").addClass("feedbackListSubtitle_right");
        $(".feedbackCon").addClass("feedbackCon_right");
    });
}

头像更新 updateAvatar

/* 头像更新 */
updateAvatar = function()
{
     // 获取要监控的元素
    const targetNode = document.getElementById('blog-comments-placeholder');

    // 创建一个 MutationObserver 实例,并定义回调函数
    const observer = new MutationObserver((mutationsList) => {
        for (const mutation of mutationsList) {
            if (mutation.type === 'childList') {
                // console.log('A child node has been added or removed.');
                setAvatar();
            } else if (mutation.type === 'attributes') {
                // console.log('The ' + mutation.attributeName + ' attribute was modified.');
            }
        }
    });

    // 配置观察选项
    const config = {
        attributes: true,
        childList: true,
        subtree: false // 观察目标节点及其后代节点
    };

    // 启动观察
    observer.observe(targetNode, config);
}

评论区设置 setComment

/* 评论区 */
setComment = function () {
    $(".feedbackItem").ajaxComplete(function (event, xhr, option) {
        //评论头像
        if (option.url.indexOf("GetComments") > -1) {
            setTimeout(function () {
                setAvatar();
            }, 50);
        }
    });  

    updateAvatar();  
};

页脚代码

<script>
$(function () {
	setComment();	
});
</script>

效果测试

点击本博客评论数最多的博文进行查看:https://www.cnblogs.com/gshang/p/biliTheme.html#!comments

标签:function,头像,博客园,blog,换页,评论,var,self
From: https://www.cnblogs.com/gshang/p/18416309

相关文章

  • AndroidStudio - - - 点击头像更换头像_菜单选择_相机拍照与相册获取
    1.逻辑代码1.1MainActivity类packagecom.example.myapplication;importandroid.Manifest;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.Intent;importandroid.content.pm.PackageM......
  • VUE框架Vue3组件切换页面准备------VUE框架
    <template><divclass="s1"><h1>我是App组件</h1><YeYe></YeYe></div></template><script>importYeYefrom"./components/YeYe.vue";exportdefault{name......
  • SpringMvc 完整上传文件流程(Ajax请求)头像,图片上传
    1、config包下的操作1.1、创建MyWebApplicationInit类如何创建第一个SpringMvc步骤以配置类的形式代替xml文件(点击链接查看)1.2、设置文件大小(自定义)1.3、创建SpringMvcConfig类并实现WebMvcConfigurer接口@EnableWebMvcpublicclassSpringMvcConfigimplementsWeb......
  • 我开通了博客园会员 -- 6181
    还是那句老话:十年河东,十年河西,莫欺少年穷学无止境,精益求精自12年毕业已12个年头了,特意看了看自己的博客园园龄11年11月,自毕业以来,一直都在和程序打交道,从当初的初级程序员,晋升中/高程序员,到现在的无层级程序员。之所以称自己为无层级程序员,是因为我目前在一家创业公司工作,公司......
  • AI生成头像表情包,一次十分钟,就能实现月入过万的玩法,无脑操作
    今天给大家带来的项目是AI生成表情包和头像,这个项目对于我们做ip来说是真心不错,就比如我这个头像。为什么说每天只需要10分钟呢,那么我们继续往下看。"项目介绍这个项目的核心其实就是使用AI生成表情包或者说生成头像,我们再小红书上运营一个账号,通过发布图文吸引粉丝。......
  • 如何打印CSDN博文和博客园博文
    如何打印CSDN博文和博客园博文相信大家看到一些比较不错的博文,都想打印保存一下,但是浏览器自带的打印会发生覆盖的问题并且除了博文之外的文字也会被打印,很不友好;这里提供一个新的方法:1、打开想要打印的博文;2、右键鼠标,选择检查,如图所示。3、点击检查,进入如下页面,选中Consol......
  • 国庆节微信头像怎么制作?制作国庆国旗节日头像的4个方法
    国庆将至,不少朋友的微信头像都换成了渐变红旗头像,是不是觉得超酷呢?如果你也想拥有这样的头像,那就跟着这篇文章一起操作吧! 国庆节前夕,让我们先来了解一下如何制作渐变红旗头像。首先,我们需要找到一款能够实现这一功能的软件。这里推荐使用一键抠图工具,它不仅能够精准批量抠出人像......
  • 【转载】从CSDN转载别人文章博客园的方法(其他博客类似)
    对于喜欢逛博客的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间里面,当然有人会说我们可以收藏博客啊,就不需要转载,(⊙o⊙)…也对。。实现  因为我自......
  • 记一次我的博客园页面突然无法显示markdown数学公式
    之前都还好好的,今天突然给我数学公式卡没了......具体情况如下但是我编辑的时候预览明明可以摘要里显示也没有问题给官方写了封邮件后得到回复如下您好,我们这边测试一下在没有自定义内容的情况下数学公式是正常加载的,建议您排查自定义样式是否与数学公式渲染发生了冲突。......
  • uniapp 微信小程序获取头像,上传服务器
    html头像UI<buttonclass="user-avatarflex-center"open-type="chooseAvatar"@chooseavatar="onChooseAvatar"><imageclass="img":src="showAvatat()"mode="scaleToFill"/>......