这是我正在处理的自动标记脚本。它可以在9gag帖子上实现。(http://9gag.com/gag/ *)
var division1 = ["@haxxorsid10 @haxxorsid11 @haxxorsid12", "@haxxorsid0"];
var i = 1;
window.onkeydown = function(e){
if(e.keyCode == 113){
document.getElementsByClassName("post-text-area")[0].value = division1[0];
document.getElementsByClassName("cmnt-btn")[0].click();
var repeat = setInterval(function start(){
if(i == division1.length - 1)
clearInterval(repeat);
document.getElementsByClassName("reply")[0].click();
document.getElementsByClassName("post-text-area")[1].value = division1[i];
document.getElementsByClassName("cmnt-btn")[1].click();
i++;
},2000);}};
即使在对division1的所有元素进行注释之后,问题仍然存在,它会继续在注释中对undefined
进行评论。似乎clearInterval永远不会被执行。
答案 0 :(得分:0)
第一次点击i=1
然后第二次点击它会计算i=2
。所以if条件没有通过。所以我在clearinterval时重置了i
值。所以每个点击计数的时间将重新开始。
并且你也没有在if条件中添加括号if{}
。
var division1 = ["@haxxorsid10 @haxxorsid11 @haxxorsid12", "@haxxorsid0"];
var i = 1;
window.onkeydown = function(e){
if(e.keyCode == 113){
var repeat = setInterval(function start(){
if(i == division1.length - 1){
clearInterval(repeat);
i=0;//its will restart the count 2 time click
console.log('stop');
}
else{
console.log('loop run')
}
i++;
},2000);}};

答案 1 :(得分:-3)
嗯,问题只是通过在if。附近应用花括号来解决。
if(i == division1.length - 1){
clearInterval(repeat);
}
它解决了这个问题,但是为什么花括号成功了......