Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   нажимать на кнопку автоматом (https://javascript.ru/forum/misc/56192-nazhimat-na-knopku-avtomatom.html)

djonA 03.06.2015 22:25

нажимать на кнопку автоматом
 
Подскажите как каждые 24 часа, ну или раз в день в 12.00 нажимать на кнопку.

Подскажите плизз варианты.

Вот кнопка:
<input type="submit" id="subaa1" value="нажать каждые 24 часа">

KosBeg 03.06.2015 22:33

поверяем время - https://learn.javascript.ru/datetime
и если сейчас нужное время - кликаем по кнопке -
айди_кнопки.click();
// например у вашем примере нужно
subaa1.click();

djonA 03.06.2015 22:42

да но для этого надо обновлять страницу, а я хочу что бы оно нажимало и обновляло мне данные раз в день в 12 часов ночи. без обновления страницы

djonA 03.06.2015 22:43

что то вроде нажатия на cron для кнопки

рони 03.06.2015 23:07

djonA,
при заходе на страницу вычислить время до следующих 12 часов -- запустить таймер который запустить функцию клика в нужное время и снова вычислит время до следующих 12 часов

Decode 04.06.2015 00:54

Вроде работает :)
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
  <button>bla-bla</button>

  <script>
    var el = document.getElementsByTagName('button')[0];

    el.addEventListener('click', function() {
      alert('Click');
    });

    var timer = setInterval(function() {
      var now = new Date();
      var date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 12, 0);

      if(now.toLocaleString() == date.toLocaleString()) {
        el.click();
        console.log('yes');
      }
    }, 1000);
  </script>
</body>
</html>

рони 04.06.2015 01:12

Decode,
setInterval будет долбить каждую секунду а таймер сработает 1 раз
и вы уверены что if(now.toLocaleString() == date.toLocaleString()) когдато сработает?
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
  <div>bla-bla</div>

  <script>
    var el = document.getElementsByTagName('div')[0];

    el.addEventListener('click', function() {
      alert('Click');
    });

    var timer = setInterval(function() {
      var now = new Date();
      var date = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes());


        el.innerHTML +=  (now.toLocaleString() == date.toLocaleString()) + " "


    }, 1000);
  </script>
</body>
</html>

Decode 04.06.2015 01:17

Цитата:

Сообщение от рони (Сообщение 373762)
и вы уверены что if(now.toLocaleString() == date.toLocaleString()) когдато сработает?

Срабатывал, я проверял.

рони 04.06.2015 01:23

Decode,
а почему в 7 посте в коде всегда false ?

Decode 04.06.2015 01:30

рони, хм, странно...

Когда я запускал пример у меня два раза не срабатывало условие. Первый раз я писал if(now == date), но потом вспомнил, что два объекта равны друг-другу если тыдым-тыдым. Затем я изменил условие if(+now == +date) - условие тоже не срабатывало. Но когда я поменял на это if(now.toLocaleString() == date.toLocaleString()) - алерт выскочил :D Можете проверить сами.


Часовой пояс GMT +3, время: 18:47.