Код Javascript для нажатия кнопки на веб-странице каждые 5 минут

У меня есть веб-страница, и на ней есть кнопка «Обновить». Мне нужно нажимать кнопку каждые 5 минут. Обычное обновление, перезагрузка или F5 в этой ситуации не работают. Есть ли способ, которым Javascript может выполнить эту задачу.

Например, я сохраню javascript как закладку, и как только я нажму на закладку. Затем событие javascript должно нажимать кнопку обновления каждые 5 минут.

Я погуглил и нашел код ниже. Но это не работает. Когда я нажимаю на него, он просто показывает случайное число на пустой странице.

javascript:if(window.autoRefreshInterval) { clearInterval(window.autoRefreshInterval); };
window.autoRefreshInterval = setInterval(function() { jQuery(".refresh").click(); },60000)

заранее спасибо,


person rocky09    schedule 15.02.2019    source источник
comment
Ваш проект использует jQuery? А в консоли есть ошибки или предупреждения?   -  person KayakinKoder    schedule 15.02.2019
comment
Привет @KayakinKoder Я пытаюсь реализовать это на странице Power BI. Я не уверен, основана ли страница Power BI на Jquery или нет. Я не вижу никаких ошибок. Он просто бросает какое-то случайное число.   -  person rocky09    schedule 15.02.2019
comment
С jQuery вы можете .trigger(click), с чистым JS .addEventListener('click') Попробуйте и расскажите нам.   -  person JoaoGRRR    schedule 15.02.2019
comment
@JoaoGRRR, как мне использовать этот код, чтобы нажать кнопку «Обновить»?   -  person rocky09    schedule 15.02.2019
comment
$(.refresh).триггер(щелчок); document.getElementsByClassName(обновить).addEventListener('щелчок');   -  person JoaoGRRR    schedule 15.02.2019
comment
@ rocky09 У вас есть доступ к исходному коду страницы с кнопкой обновления? Или это для сторонней страницы?   -  person Pedro Ramon    schedule 15.02.2019
comment
@PedroRamon Я использовал элемент проверки и получил этот код. ‹button ng-click=$ctrl.refresh() class=refresh localize-tooltip=ReportAppBar_RefreshButton title=Refresh›‹i class=glyphicon pbi-glyph-refresh glyph-mini aria-hidden=true›‹/i›‹span локализовать =ReportAppBar_RefreshButton›Обновить‹/span›‹/кнопка›   -  person rocky09    schedule 15.02.2019


Ответы (5)


«У меня есть веб-страница, и на ней есть кнопка «Обновить». Мне нужно нажимать эту кнопку каждые 5 минут. Обычное обновление, перезагрузка или F5 в этой ситуации не работают. Есть ли способ, которым Javascript может выполнить эту задачу».

Мне не очень понятно, но каждый раз, когда вы обновляете веб-страницу, снова загружается javascript. Поэтому, если у вас есть интервалы или переменные, они сбрасываются при каждом обновлении. Если вы хотите сохранить какое-то значение среди обновлений, вы можете хранить значения, например, с помощью localStorage или файлов cookie. Если вы хотите автоматически обновлять страницу, вы можете использовать setInterval или метатег "refresh"< /а>.

«Например, я сохраню javascript как закладку, и как только я нажму на закладку. Затем событие javascript должно нажимать кнопку обновления каждые 5 минут».

Посмотрите на это: Добавьте закладку, которая является только javascript, не URL

person Marcelo Vismari    schedule 15.02.2019

вы можете вызвать функцию кода обновления или событие нажатия кнопки в

setTimeout(yourFucntion(),5000); 
else
setTimeout($("#btnName").click(),5000);
person Piyush    schedule 15.02.2019

Попробуйте код ниже:

<!DOCTYPE html>
<html>
<body  onload="f1()">
<script language ="javascript" >
        var tmp;
        function f1() {
             tmp = setInterval(() => f2(), 2000); // replace this with 5 min timer
        } 
        function f2() {
            document.getElementById("Button1").click();
        }

        function f3() {
          console.log("Hello World");
        }
</script>

<button id="Button1" onclick="f3()">click me</button>
<div id="demo"></div>
</body>

</html>
person Praveen Kishor    schedule 15.02.2019
comment
привет, я просто хочу сохранить код как закладку. Итак, я нажимаю на нее, и она обновляется каждые 5 минут. - person rocky09; 15.02.2019

Есть две версии, которые вы можете попробовать: одна использует javascript для нажатия кнопки, а другая автоматизирует запуск функции, привязанной к кнопке.

Не JQuery:

 javascript:(function(){if(window.autoRefreshInterval) {clearInterval(window.autoRefreshInterval);}window.autoRefreshInterval = setInterval(function(){document.getElementsByClassName("refresh")[0].addEventListener('click');},60000);})()

Или с jQuery (комментарий OP к исходной теме):

 javascript:(function(){if(window.autoRefreshInterval) {clearInterval(window.autoRefreshInterval);}window.autoRefreshInterval = setInterval(function(){$ctrl.refresh();},60000);})()
person imvain2    schedule 15.02.2019
comment
Спасибо, но это просто показывает какое-то случайное число на пустой странице - person rocky09; 15.02.2019
comment
@ rocky09 Я обновил код, чтобы привести два примера. - person imvain2; 15.02.2019

Отложенный пост, но, надеюсь, он кому-то поможет :-).

Хитрость для меня заключалась в том, чтобы найти элемент с помощью css document.querySelector('.pbi-glyph-refresh').click();

Вы можете комбинировать это с исходным кодом, например, он правильно нажимает кнопку обновления PowerBI на 60-секундном таймере (var находится в мс).

javascript:if(window.autoRefreshInterval) { clearInterval(window.autoRefreshInterval); };
window.autoRefreshInterval = setInterval(function() {document.querySelector('.pbi-glyph-refresh').click(); },60000)
person James McNiff    schedule 11.02.2021