您好,欢迎访问一九零五行业门户网

异步获取评论者网站截图

先上效果(泉哥,这回你可以试效果了,真的放在网站了哈哈哈) 昨天写的抓rss是用php的方法,而我们知道php本身是不能多线程异步加载的,确实对网速影响太大,所以异步还是不得不用的,只能换了个jquery的方法,改写自akismet后台预览,另外,声声说以前willin弄过友链
先上效果(泉哥,这回你可以试效果了,真的放在网站了哈哈哈)
昨天写的抓rss是用php的方法,而我们知道php本身是不能多线程异步加载的,确实对网速影响太大,所以异步还是不得不用的,只能换了个jquery的方法,改写自akismet后台预览,另外,声声说以前willin弄过友链的异步截图,难怪我记得有人写过类似的东西却没有搜到.
评论和友链不一样,具有变动性,昨天一开始给评论赋值id的时候,用的是其母元素li的id,导致在不同人回复同一个人的情况下,共用了一个母li导致id相同截图抓取异常,所以我们先要给每个评论的comment-author-url都赋值一个不同的id.
在你的模板函数中找到获取评论者昵称和url的代码,(不知道是什么的话,就搜索get_comment_author_link找到类似下面的代码)
改成
rel=external nofollow target=_blank id=url->
然后如果你已经载了jquery库,就把下面的扔到你的js里,
jquery(document).ready(function () { jquery('ol.commentlist li.comment .comment-author cite a[href ^= http://]').each(function () {//这段我已经尽量弄的很通用了,如果你的评论结构十分奇葩,可能还是需要自己做相对调整 var thiscommentid = jquery(this).attr('id').split(-); jquery(this).attr(id, author_comment_url_+ thiscommentid[1]); }); jquery('a[id^=author_comment_url]').mouseover(function () { var wpcomprotocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://'; //下面部分是position样式,根据需要自己调整 var thiswidth = jquery(this).width()+ 15 + 'px'; if (jquery(this).find('.mshot').length == 0 ) { var thisid = jquery(this).attr('id').replace('author_comment_url_', ''); var thishref = jquery.urlencode(jquery(this).attr('href')); jquery(this).append('
'); //原为s0.wordpress.com,由于国内wordpress.com已经被墙,昨晚在找可用的截图api时意外发现改成wp就可以正常访问 settimeout(function () { //如果第一次调用超时,则依次换成下面的地址 jquery('.mshot-image_'+thisid).attr('src', wpcomprotocol+'s0.wp.com/mshots/v1/'+thishref+'?w=450&r=2'); }, 6000); settimeout(function () { jquery('.mshot-image_'+thisid).attr('src', wpcomprotocol+'s0.wp.com/mshots/v1/'+thishref+'?w=450&r=3'); }, 12000); } else { jquery(this).find('.mshot').css('left', thiswidth).show(); } }).mouseout(function () { jquery(this).find('.mshot').hide(); });}); //将调用api时的http://解码为可识别的字符jquery.extend({urlencode:function(c){var o='';var x=0;c=c.tostring();var r=/(^[a-za-z0-9_.]*)/; while(x1 && m[1]!=''){o+=m[1];x+=m[1].length; }else{if(c[x]==' ')o+='+';else{var d=c.charcodeat(x);var h=d.tostring(16); o+='%'+(h.length 原文地址:异步获取评论者网站截图, 感谢原作者分享。

其它类似信息

推荐信息