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

简介:

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

  下面我来说下实现原理,其实没什么技术含量,懂点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,如需转载请自行联系原作者



相关文章
|
6月前
|
人工智能 Java
编程小白的第一篇博客
编程小白的第一篇博客
37 0
|
9月前
|
程序员
博文创作者都有一个拥有自己专属博客梦
经常写作的作者想必都知道,个人博客是一种历史悠久的网站形态,它能够让我们更好地表达自己的想法和思考,与读者进行互动和交流。在互联网发展的今天,个人博客仍然是一种流行的媒介,而且许多人都拥有自己的个人博客。作为程序员更是如此,要有属于自己的技术博客。
143 2
博文创作者都有一个拥有自己专属博客梦
|
网络协议 Shell PHP
原创 今日学习
原创 今日学习
94 0
原创 今日学习
|
JavaScript
原创 今日webjs学习
原创 今日webjs学习
71 0
原创 今日webjs学习
|
缓存 安全 druid
手把手教你设计一个CSDN系统
在CSDN发一个CSDN系统是什么体验?大家都知道CSDN 有一个下载的模块,就是用户上传资源然后管理员会进行审核,上传资源的用户可以赚钱还可以赚积分。
214 0
手把手教你设计一个CSDN系统
|
数据采集 移动开发 缓存
坚持写一年的技术博客, 我收获了这些 | 掘金年度征文
在技术平台写文章差不多一年了, 累计写了150多篇, 基本涵盖了前端的每一个角落, 也是笔者4年工作中的实践和学习积累. 中间踩过很多坑, 也从中积累了很多解决问题的方法和思路. 虽然牺牲了很多业余时间, 但也给我带来了很多收获. 笔者将利用2020年的最后几天, 好好回顾一下这一年的学习和坚持写作的收获.
150 0
|
中间件
「技术人生」专栏作者来直播间啦!欢迎来提问
4月7日(下周四)15:00,技术人生专栏作者 贺科学(晨末)将在阿里巴巴中间件视频号与读者们现场互动,据说还带来了诚意满满的惊喜~
508 1
「技术人生」专栏作者来直播间啦!欢迎来提问
教你创建自己的CSDN博客专栏
教你创建自己的CSDN博客专栏
251 0
教你创建自己的CSDN博客专栏
|
Android开发
我的2017,阅读本文大约需要一整年
时光荏苒,恍惚间 2018 开始已经 3 天了,我知道这两天一定又是开始了一堆年终总结,当然我也不是跟风,只是去年立下的 Flag,从 2017 年开始,必须要做个年终总结。
1147 0
|
Web App开发 监控 Windows