【问题标题】:Detect a button and then press it in JavaScript检测一个按钮,然后在 JavaScript 中按下它
【发布时间】:2020-06-21 16:25:48
【问题描述】:

我想创建一个功能来检测网页上的按钮然后单击它。但我希望它点击特定项目。

function imready()
{
    var btn = document.getElementsByClassName('text-xxxs mb-02');
    for (var i = 0; i < btn.length; i++)
    {
        if (btn[i].innerText.indexOf('AK-47') > -1)
        {
            console.log('runtime');
            chrome.runtime.sendMessage({ type: 'dontrun', update: 1 }, function (response) {
        });
        btn[i].click();
        pressok();
    }
 }

如何使 var "btn" 等于 document.getElementsbyClassName('x') 以及不同的 className ('y')?

【问题讨论】:

    标签: javascript function event-handling


    【解决方案1】:

    引用https://stackoverflow.com/a/29366682/10450049

    getElementsByClassName() 返回一个HTMLcollection object,它类似于一个数组,但不是真正的数组,所以你不能调用 使用返回值的数组方法。一种技巧是使用 Array 的 原型方法与 .call()/.apply() 一起传递返回的 对象作为上下文。

    var elems = document.getElementsByClassName("royal") ;
    var collapsedElems =  document.getElementsByClassName("collapsed");
    var earray = Array.prototype.slice.call(elems, 0);
    var concatenated = earray.concat.apply(earray, collapsedElems) ;
    console.log(concatenated)
    

    演示Fiddle

    【讨论】:

      【解决方案2】:

      据我了解您的问题,您可以使用document.querySelector('.classX.classY') 选择两个类所需的按钮。 如果您只需要所选页面上的一个按钮,这适用于这种情况,从您的代码中我假设正是如此。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-12
        • 2019-02-04
        • 1970-01-01
        • 2016-12-08
        • 1970-01-01
        • 2017-12-23
        • 1970-01-01
        相关资源
        最近更新 更多