截止 2016.05.06 依然有效
最近遇到一个问题,想要给早期自己在豆瓣上收藏的看过的电影评分,但问题是一个一个修改的话巨慢,于是写了一个小plugin脚本,只要在firebug的console里运行了就好(Chrome里应该也可以).
前提:登陆自己的豆瓣账户,进入自己的电影列表(需要是列表模式)。
代码:(下面的code默认用到了 jQuery, 豆瓣支持此库)
(function () {
$("body").after("<iframe id='changeRating'></iframe>");
$(".title").each(function(ind, val) {
var movie = $(val).children("a").attr("href");
var suffix = "?ck=D4_K&rating=";
for (var i = 1; i <= 5; i++) {
$(val).after("<a class='changeRatingBtn' href='" + movie + suffix + i + "'> " + i + " </a>");
}
$(val).after("<span style='display:inline-block;width:50px;'></span>");
});
var iframe = document.getElementById("changeRating");
$(".changeRatingBtn").click(function() {
iframe.src = $(this).attr('href');
return false;
});
}());
注意:请更换code中红色的ck值,这个值会变的,不过你只需要进入某部电影里,鼠标放在星级图标上看看显示的URL里的ck值就好
用firefox的话在firebug的console里运行上段代码,或者在chrome里开启developer模式运行。会在每个电影后面出现可选星级的数字,点了就好(会异步修改,所以不需要等待)。如下图所示:
基本想法就是,得到改变rating需要的URL,比如说:http://movie.douban.com/subject/10450409/?rating=4&ck=D4_K
. 然后就是把5星的link都生成出来。但当我点击的时候,我不想refresh页面,所以生成一个iframe, url在iframe里执行,就不会刷新页面了。