首页 > 解决方案 > 检测一个按钮,然后在 JavaScript 中按下它

问题描述

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

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')?

标签: javascriptfunctionevent-handling

解决方案


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

getElementsByClassName()返回一个HTMLcollection 对象,该对象类似于数组,但不是真正的数组,因此您不能使用返回的值调用数组方法。一种技巧是使用 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)

演示小提琴


推荐阅读