我对自己博客的评论样式进行了美化,让它能够显示评论者的头像:
以前的ok的,估计是博客园换了接口。
<a id="a_comment_author_1825843" href="http://www.cnblogs.com/ericwen/" target="_blank">EricWen</a>
根据评论的id 1825843,或用户账户ericwen, 但他的头像url是:http://pic.cnitblog.com/face/u26890.jpg
如何关联到呢?
现在的头像地址每次上传后会变化,我们会考虑提供一种方式让您方便地获取这个地址
谢谢dudu,期待ing...
@CoolCode: 现在可以获取头像的地址了,在评论内容增加了隐藏的img标签,比如:
<img style="display:none;" alt="" src="" class="comment-avatar" id="comment_1825951_avatar">
1825951是评论的id
@dudu: 不行哦,
@CoolCode: @dudu 看了博客园的js,也没找到关于对.comment-avatar 样式的图片替换。。。
@CoolCode:
由于img虽然display:none,但浏览器还会加载图片文件,所以后来改为span标签,比如:
<span id="comment_2712892_avatar" style="display:none;">http://pic.cnitblog.com/face/u8138.jpg</span>
@dudu: 能否提供一个示例的blog地址呢?头像还是弄不出来
@CoolCode:
这个就可以取到头像的地址:
$("#comment_评论ID.avatar").html();
@dudu: 我不知道是我表述不清还是怎样。现在我的需求是:根据评论ID获取头像,但找不到两者的关联,所以求助是否有这种url接口。然后,dudu你告诉我 <span id="comment_评论ID_avatar" ... />这种写法就可以了,然后呢?我hardcode了一句代码:<span alt="" src="" class="comment-avatar" id="comment_2120853_avatar" width="39px" height="39px"></span>
还是不行,你可以看看我的blog: http://www.cnblogs.com/coolcode/archive/2011/06/08/IQueryBuilder_v2.html#2120853
@dudu: 我现在开始参悟到你的想法了,你是说你已经提供了一个图片地址给我,用个隐藏span包住并放在html里。然后我通过批量id去获取这个隐藏值,是这样吗?
@CoolCode: 是这样的
@dudu: ok了,谢谢dudu。
$.each($(".blog_comment_body"), function (i, t) { var comment = $(t); var commentBodyId = t.id; var commentId = commentBodyId.substr(commentBodyId.lastIndexOf("_")+1); var avatarUrl = $("#comment_"+ commentId+"_avatar").html(); ...... });
//显示评论区头像 function showAvatar(){ $(".feedbackItem").each(function(){ var avatar = $(this).children(".feedbackCon").children("span:last").html(); avatar = avatar ? avatar.replace("http://", "https://") : "https://pic.cnblogs.com/face/sample_face.gif"; //没有头像用默认头像 //console.log( avatar ); $('<img src="'+ avatar +'" class="avatar" />').prependTo( $(this).children(".feedbackCon") ); }); } $(function(){ setTimeout(function(){ showAvatar(); }, 1000) }); $(document).on("click", ".pager a", function(){ setTimeout(function(){ showAvatar(); }, 1000); });