首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择词汇表测验的随机答案的脚本

选择词汇表测验的随机答案的脚本
EN

Code Review用户
提问于 2016-03-01 22:14:18
回答 1查看 246关注 0票数 6

我正在制作一个小脚本,当在Vocabulary.com上的控制台中运行时,选择一个答案(第三个或第四个)并单击。然后,代码检查答案是错误的还是正确的,然后进入下一个问题。由于从回答问题到出现“下一个问题”按钮之间的动画非常长,所以我不得不使用函数和setTimeout()的奇怪组合。虽然代码可以工作,但我觉得它很混乱,而且可能不会总是起作用。如何使这段代码更好地执行,并确保它易于编辑?

要运行脚本,请继续使用https://www.vocabulary.com并在控制台中运行以下代码。

代码语言:javascript
复制
function clickNextButton() {
    for (v = 0; v < 4; v++) {
        document.getElementById("questionContainer").getElementsByTagName("a")[v].click();   
    }

    function finalClick() {
        var foo = document.getElementById("blurbPane").getElementsByTagName("button")[0];
        foo.click();
    }

    setTimeout(finalClick, 1000);


}

var myElem = document.getElementsByClassName('source')[0];
if (myElem == null){
    console.log("no source")
} else{
    myElem.parentNode.removeChild(myElem);
}

var mathRandom = Math.floor(Math.random() * 2 + 2);
var selectChoices = document.getElementById("questionContainer").getElementsByClassName("choices")[0].getElementsByTagName("a")[mathRandom];
selectChoices.click();
setTimeout(partA, 1000);

function partA() {
    var ifMessage = document.getElementsByClassName("messagePane")[0].getElementsByTagName("h3")[0];    
    var myColor = window.getComputedStyle(ifMessage).getPropertyValue("color");
    if (myColor == "rgb(204, 0, 0)") {
        clickNextButton();
    } else if (myColor == "rgb(83, 144, 7)") {
        document.getElementsByClassName("nextQuestion")[0].click();
    }
}
EN

回答 1

Code Review用户

发布于 2016-03-05 16:27:12

您可以使用JQuery 停止播放跳过元素中的动画。此方法将应用于Jquery选择器,并将停止在其上运行的动画。

因此,使用它,您可以在触发单击后强制完成与问题容器相关的所有动画。

票数 1
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/121616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档