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

简介:

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

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



相关文章
|
2月前
taichi学习记录
关于Taichi编程语言学习的记录,涉及Taichi的安装方法、运行结果截图以及相关学习资源的链接,包括中文语音视频教程、系统学习课程和知乎资料。
|
程序员
博文创作者都有一个拥有自己专属博客梦
经常写作的作者想必都知道,个人博客是一种历史悠久的网站形态,它能够让我们更好地表达自己的想法和思考,与读者进行互动和交流。在互联网发展的今天,个人博客仍然是一种流行的媒介,而且许多人都拥有自己的个人博客。作为程序员更是如此,要有属于自己的技术博客。
179 2
博文创作者都有一个拥有自己专属博客梦
|
存储 Ubuntu 算法
KNIME学习记录
KNIME学习记录
790 0
|
网络协议 Shell PHP
原创 今日学习
原创 今日学习
114 0
原创 今日学习
|
JavaScript
原创 今日webjs学习
原创 今日webjs学习
88 0
原创 今日webjs学习
|
中间件
「技术人生」专栏作者来直播间啦!欢迎来提问
4月7日(下周四)15:00,技术人生专栏作者 贺科学(晨末)将在阿里巴巴中间件视频号与读者们现场互动,据说还带来了诚意满满的惊喜~
567 8
「技术人生」专栏作者来直播间啦!欢迎来提问
|
机器学习/深度学习 人工智能 编译器
C#学习记录
C# 是一个简单的、现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的。 本文章用于记录博主学习c#学习经历–学习笔记 文章目录前言一、工具和环境二、结构1.第一个程序2.读入数据三、数据类型四、运算符号五、判断语句六、C# 循环七、C# 数组(Array)总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、工具和环境 Microsoft Visu.
104 0
C#学习记录
|
Java 编译器
Janino学习记录
Janino学习记录
1021 0
教你创建自己的CSDN博客专栏
教你创建自己的CSDN博客专栏
282 0
教你创建自己的CSDN博客专栏
|
存储 网络安全 索引
libp2p学习记录一
学习libp2p的过程中,总结了一下