нажимать на кнопку автоматом
Подскажите как каждые 24 часа, ну или раз в день в 12.00 нажимать на кнопку.
Подскажите плизз варианты. Вот кнопка: <input type="submit" id="subaa1" value="нажать каждые 24 часа"> |
поверяем время - https://learn.javascript.ru/datetime
и если сейчас нужное время - кликаем по кнопке - айди_кнопки.click(); // например у вашем примере нужно subaa1.click(); |
да но для этого надо обновлять страницу, а я хочу что бы оно нажимало и обновляло мне данные раз в день в 12 часов ночи. без обновления страницы
|
что то вроде нажатия на cron для кнопки
|
djonA,
при заходе на страницу вычислить время до следующих 12 часов -- запустить таймер который запустить функцию клика в нужное время и снова вычислит время до следующих 12 часов |
Вроде работает :)
<!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> |
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,
а почему в 7 посте в коде всегда false ? |
рони, хм, странно...
Когда я запускал пример у меня два раза не срабатывало условие. Первый раз я писал if(now == date), но потом вспомнил, что два объекта равны друг-другу если тыдым-тыдым. Затем я изменил условие if(+now == +date) - условие тоже не срабатывало. Но когда я поменял на это if(now.toLocaleString() == date.toLocaleString()) - алерт выскочил :D Можете проверить сами. |
Decode,
я и так проверил что этот код никогда не сработает -- чего-то нехватает :) |
Decode,
хочется чтоб каждую секунду now.toLocaleString() == date.toLocaleString() выдавала true :dance: в коде 7 поста. |
<!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(), 1, 37); if(now.toLocaleString() == date.toLocaleString()) { console.log(now.toLocaleString()); console.log(date.toLocaleString()); el.click(); } }, 1000); </script> </body> </html> рони, я только что запустил этот код. ![]() |
Decode,
да срабатывает - но где уверенность что сработает ??? |
рони, а что может помешать? И покажите как правильно надо сделать, если не сложно.
|
Decode,
я уже написал выше вычислил бы время до события и запустил таймер -- а не сравнивал бы время каждую секунду - https://learn.javascript.ru/settimeo...тывания вдруг этих 00 секунд не будет ? |
рони, ок.
|
:-?
<!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 button = document.getElementsByTagName("button")[0]; button.addEventListener("click", function() { alert("Click") }); function calculator() { var now = new Date, date = (new Date).setHours(12, 0, 0, 0); now > date && date.setDate(date.getDate() + 1); setTimeout(go, date - now) } function go() { button.click(); calculator(); } calculator(); </script> </body> </html> |
Часовой пояс GMT +3, время: 02:00. |