У меня есть страница с несколькими ссылками, которые выглядят так:
<a href="/" class="answer-item" rel="0">10</a>
Я хотел бы использовать функцию click()
для имитации щелчка пользователя по одному из них, но, похоже, в моих тестах это не работает.
//Evaluate a mathematical expression from another part of the page
var numberAnswer = eval(document.getElementById("question-title").getElementsByTagName("b")[0].innerHTML);
//Builds an array with the links that may match the expression
var choices = document.getElementsByClassName('answer-item');
//Iterates through array to find a match then clicks it
for(var i in choices){
if(choices[i].innerHTML == numberAnswer){
choices[i].click();
break;
}
}
Я уверен, что choices[i]
- правильный элемент.
Firefox ничего не делает, Opera ничего не делает, а click() недоступен в Chrome (я думаю).
Кроме того, я пытался использовать dispatchEvent()
в этой форме:
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
choices[i].dispatchEvent(evt);
Очевидно, это вернуло true
в Firefox и Chrome, но ничего не изменило.
Самое неприятное то, что ссылка только с атрибутом href
прекрасно работает с .click()
.