博客园小技巧——强制推荐&强制关注(仅供学习交流)

简介:

 首先,感谢你为我的这篇文章点了推荐,虽然你可能没有点,但是我已经“好心”的帮你点了。不信?那你先看下文章右下角的推荐数,然后刷新下页面看看。

  下面我来说下实现原理,其实没什么技术含量,懂点js的人都能进行操作。

  我先用firebug查看了页面上推荐按钮的DOM,发现其实是个点击事件:

  是一个叫 DiggIt() 的方法,分别传入了3个参数,看参数命名应该分别是文章ID、博客ID和一个写死的1。这下就简单了,是不是我直接在页面底部写句一模一样的方法,就能实现了呢?

  于是我到后台“设置”里面找到页尾输入筐,调用这个方法,如下:

  欣喜的去测试,发现测试失败,在我更新后台设置后,再去看,发现整个方法都别过滤掉了,无奈,只能进行第二套计划,就是找到这个方法,最终我在common.js里找到这个方法,如下:

function  DiggIt(entryId, blogId, diggType) {
     currentDiggEntryId = entryId;
     var  diggedType = currentDiggType;
     if  (diggedType == 0) {
         ShowDiggMsg( '提交中...' );
         currentDiggType = diggType;
         AjaxPost( "/ws/digg.asmx/digg" , '{entryId:'  + entryId + ',blogId:'  + blogId + ',diggType:'  + diggType + '}' , OnDiggSuccess);
     }
     else  if  (diggedType == 1) {
         ShowDiggMsg( '您已经推荐过了!' );
     }
     else  if  (diggedType == 2) {
         ShowDiggMsg( '您已经反对过了!' );
     }
}

  当然,我不需要这么多,我只需要这句代码就行:AjaxPost("/ws/digg.asmx/digg", '{entryId:' + entryId + ',blogId:' + blogId + ',diggType:' + diggType + '}', OnDiggSuccess);

  于是我把里面的一些参数手动替换掉,最终变成了:AjaxPost("/ws/digg.asmx/digg", '{entryId:' + cb_entryId + ',blogId:' + cb_blogId + ',diggType:1}', OnDiggSuccess);

  然后我再把它复制到页脚HTML代码处,更新后发现还是过滤掉了。

  我开始观察这句代码,通常过滤代码都是按字符串来过滤,只要页面上出现什么字符串,就自动过滤掉。我想,如果把字符串拆开来用“+”拼接,是否还能过滤掉呢,于是,代码又变成了:AjaxPost("/ws/di"+"gg.as"+"mx/di"+"gg", '{ent'+'ryId:' + cb_entryId + ',blog'+'Id:' + cb_blogId + ',digg'+'Ty'+'pe:1}', OnDiggSuccess);

  更新,发现没事,妥妥的更新成功了,赶紧去之前的博文里试了一把,成功!

  最后,为了保证稳定,我在外面包了一层jquery的ready方法,保证它在页面全部加载完后再执行。于是,最终的代码就是:

$().ready( function (){
     AjaxPost( "/ws/di" + "gg.as" + "mx/di" + "gg" , '{ent' + 'ryId:'  + cb_entryId + ',blog' + 'Id:'  + cb_blogId + ',digg' + 'Ty' + 'pe:1}' , OnDiggSuccess);
});

  好了,文章到这里就结束了。我只是作为学习研究用,请勿使用于商业用途,否则后果自负。

  PS:稍微有一点小bug,就是提交后不能马上更新,需要刷新下页面才能看到。

  PS2:通过这个思路,其实还能实现强制留言功能,不过我还是比较看重访客的留言,因为自己做的一些插件需要使用者的反馈。所以我就说个思路,至于实现就让你们自己去操作吧。

  PS3:用同样原理也实现了强制关注的功能,实现代码就不公布了,没太大意义。

  PS4:补充一句,我已经给官网邮箱和小组里都发帖告知官网这个问题,希望博客园能尽快处理。



   本文转自胡尐睿丶博客园博客,原文链接:http://www.cnblogs.com/hooray/archive/2011/09/13/2175130.html,如需转载请自行联系原作者



相关文章
|
程序员
博文创作者都有一个拥有自己专属博客梦
经常写作的作者想必都知道,个人博客是一种历史悠久的网站形态,它能够让我们更好地表达自己的想法和思考,与读者进行互动和交流。在互联网发展的今天,个人博客仍然是一种流行的媒介,而且许多人都拥有自己的个人博客。作为程序员更是如此,要有属于自己的技术博客。
184 2
博文创作者都有一个拥有自己专属博客梦
|
算法
2022年终总结 | 我与CSDN的那些事,如何两个月成为一名万粉博主
Hello大家好,这里是每天都在努力学习后端的小王同学,遇见即是缘分,欢迎光临我的世界~
192 0
2022年终总结 | 我与CSDN的那些事,如何两个月成为一名万粉博主
|
网络协议 Shell PHP
原创 今日学习
原创 今日学习
118 0
原创 今日学习
|
JavaScript
原创 今日webjs学习
原创 今日webjs学习
91 0
原创 今日webjs学习
|
弹性计算 运维 安全
课程2:从一个博客说起 | 学习笔记
快速学习课程2:从一个博客说起
课程2:从一个博客说起 | 学习笔记
|
数据采集 移动开发 缓存
坚持写一年的技术博客, 我收获了这些 | 掘金年度征文
在技术平台写文章差不多一年了, 累计写了150多篇, 基本涵盖了前端的每一个角落, 也是笔者4年工作中的实践和学习积累. 中间踩过很多坑, 也从中积累了很多解决问题的方法和思路. 虽然牺牲了很多业余时间, 但也给我带来了很多收获. 笔者将利用2020年的最后几天, 好好回顾一下这一年的学习和坚持写作的收获.
187 0
云栖社区云栖号(团队博客)攻略【2018版】
云栖社区云栖号是什么? 这是一个为技术团队打造的专区(小站),团队成员的技术文章将在这里汇总,可以帮助团队沉淀优质技术内容、打造技术品牌和影响力等。 云栖号申请条件 点击https://yq.aliyun.com/teams页面右侧的【申请云栖号】,按照要求填写邮件内容,社区管理员审核后即可开通。
3006 0
|
算法 数据挖掘 定位技术
|
算法 Linux
慕课网优秀博客
日有所思,夜有所梦 的博客 1.讲师Geely  接口限流算法总结 Linux 基础 - 常用命令篇 大型项目架构演进过程及思考的点
958 0