Я пытаюсь создать расширение Chrome, которое нажимает кнопку на веб-сайте с помощью метода DOM.click ().(https://www.w3schools.com/jsref/met_html_click.asp)
РЕДАКТИРОВАТЬ: целью этого расширения Chrome является создание сочетания клавиш для включения / выключения английских субтитров при просмотре видео на иностранном языке. При использовании мыши и перетаскивания ее, чтобы открыть менювключать субтитры, когда они вам нужны, может быть неудобно, если вы пытаетесь понять язык без субтитров. Я хотел создать сочетание клавиш, которое бы сразу включало субтитры. Примером такого веб-сайта является (https://www.ondemandkorea.com/ask-us-anything-e102.html)
<button type="button" class="jw-reset jw-settings-content-item" role="menuitemradio" aria-checked="false">English</button>
Это кнопка на веб-сайте, которую я пытаюсь нажать с помощью Javascript
В моем коде у меня есть прослушиватель окна, который ожидает загрузки определенного веб-сайта. Затем, чтобы найти кнопку, которую я хочу нажать, я вызываю document.getElementsByClassName ("Имя класса") и просматриваю массив возвращенных элементов для кнопки с надписью English и сохраняю еев var englishButton . Я добавляю еще одного слушателя, который прослушивает нажатие клавиши клавиатуры, которая в свою очередьesses englishButton .
Однако, когда я нажимаю комбинацию клавиш, englishButton.click (); , похоже, ничего не делает.Я знаю, что найдена правильная английская кнопка, и что мой обработчик ярлыков работает с помощью операторов console.log () .
Не могу понять, почему кнопка выиграла 't click.
EDIT: после добавления buttonListener к коду английская кнопка все-таки щелкает, но не включает субтитры для видео
Вот мой код.
/*
Looking for the subtitle button that states "English"
*/
var englishButton;
window.addEventListener("load", function(event) {
var buttonList = document.getElementsByClassName('jw-reset jw-settings-content-item');
for (var i = 0, len = buttonList.length; i < len; i++){
if(buttonList[i].textContent === "English") {
englishButton = buttonList[i];
break;
}
}
englishButton.addEventListener('click', function() {
console.log('englishButton clicked!');
});
/*
Event Listener that detects when the shortcut key is hit.
When the shortcut Key is hit. It will simulate a mouse click on the subtitle button
*/
document.addEventListener('keyup', function(e){
if(e.key === shortcutKey){
console.log('shortcut pressed')
englishButton.click();
}
}
);
});