Обнаружить кнопку и нажать ее в JavaScript - PullRequest
1 голос
/ 21 июня 2020

Я хочу создать функцию, которая обнаруживала бы кнопку на веб-странице и затем щелкала по ней. Но я хочу, чтобы он щелкнул указанный c элемент.

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();
    }
 }

Как сделать так, чтобы переменная «btn» была равна document.getElementsbyClassName ('x'), а также другому className ('у')?

Ответы [ 2 ]

0 голосов
/ 21 июня 2020

Цитирование из { ссылка }

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)

Demo Fiddle

0 голосов
/ 21 июня 2020

Насколько я понимаю ваш вопрос, вы можете использовать document.querySelector('.classX.classY') для выбора нужной кнопки с обоими классами. Это работает для случая, если вам нужна только одна кнопка на выбранной странице, из вашего кода я предполагаю именно это.

...