Я искал и искал вопросы, похожие на мой вопрос, но были либо на других языках, либо протестированы и не ответили, поэтому мне пришлось задать вопрос. Я написал плагин для Chrome Теперь это проблема сайта, на котором я написал плагин Недавно на сайт добавили 2 кнопки
Я хочу написать функцию, которая постоянно проверяет, есть ли кнопка (refresh_button), чтобы нажимать на нее. Затем открывается новая страница с кнопкой с именем (play_button) внутри. Проверьте, существует ли он. Нажмите здесь
вот моя функция для этой работы, но она не работает
var t_refreshBtn=document.getElementsByClassName("refresh_button")[0];
var t_playBtn=document.getElementsByClassName("play_button")[0];
var interval = 10;
var timer = window.setInterval(function(){
if ($('#refresh_button').length > 0){
t_refreshBtn.click();
}
window.clearInterval(timer);
}, interval);
Вы немедленно очищаете интервал. Попробуйте var timer = window.setInterval(function(){ if ($('#refresh_button').length > 0){ t_refreshBtn.click(); window.clearInterval(timer); } }, interval);
И интервал для SetInterval в миллисекундах, так что 10 мс это почти мгновенно.
Вы добавляете элементы к переменным через имя класса, но пытаетесь получить к нему доступ позже через идентификатор? плюс, вы также используете jQuery.
Я вижу, вы используете JQuery. ты можешь попробовать.
if ($('#refresh_button').length > 0){
$('#refresh_button').trigger("click");
}
Проверяйте только, существует ли ваш t_refreshBtn
, затем привяжите событие click()
, иначе делайте все, что хотите:
var t_refreshBtn=document.getElementsByClassName("refresh_button")[0];
var t_playBtn=document.getElementsByClassName("play_button")[0];
var interval = 1000;
var timer = window.setInterval(function(){
if (t_refreshBtn){
t_refreshBtn.click();
}else{
console.info("Button not found");
}
window.clearInterval(timer);
}, interval);
его просто обновите и обновите снова, даже без какой-либо кнопки на странице: (
Я изменил интервал на 10000, и он работал как шарм, большое спасибо, но другой вопрос, как я могу добавить, чтобы нажать кнопку воспроизведения, если она тоже существует?
вы можете сделать то же самое с кнопкой t_playBtn.
братан, я установил интервал на 10000, но даже если нет кнопки обновления, но она обновляет страницу
const button = $('#refresh_button');
button.length > 0 ? button.click() : alert('No button for you') // BOOM 1 liner
Пожалуйста, покажите текст ошибки.