先放上代码:
在浏览器开发者东西内里的控制台(console)内里粘贴这段代码,然后回车就能够了,条件是qq空间的页面要一向开着,在个人中间能够运转。
var clicklog = function() {
[].map.call(document.getElementsByClassName("qz_like_btn_v3"), function(item) {
if(item.dataset.clicklog === "like") {
item.click();
}
})
}
setInterval(function() {
document.body.scrollTop += 1000;
if(!document.getElementsByClassName("img-loading")) {
clicklog();
} else {
document.body.scrollTop -= 1000;
clicklog();
document.body.scrollTop += 1000;
}
}, 200)
解释一下这段代码:
由于DOM的NodeList虽然能够经由过程[0]的情势来猎取对应节点,然则依然是类数组,所以用call要领使其能够运用map要领来遍历。
我视察了QQ空间的点赞按钮,点赞后data-clicklog会转变成cancellike,所以依据这个推断本身是不是有点过赞,然后用click()要领模仿点赞。
然则QQ空间是分块加载的,所以必需下拉一段距离才会革新接下来的内容,所以我用setInterval动态转变scrollTop的值,每次0.2s向下拉1000px。
这个我是经由过程是不是涌现loading图来推断的,假如涌现loading的时刻(这个时刻scrollTop来一向在增添,然则一向处于loading状况加载不出来),必需把页面向上面转动一下才继承加载,所以我让scrollTop削减1000px。这块我如果说的不明白,你们能够把document.body.scrollTop -= 1000;去掉再运转碰运气。
我本日发明QQ空间个人中间内里的是跨域iframe,所以不能猎取到DOM,所以这段代码只能在本身主页运转。