Имитация клика с помощью setTimeout в Javascript - PullRequest
5 голосов
/ 17 мая 2011

Как бы я смоделировал событие нажатия с помощью setTimeout?Что-то вроде:

<script>
    window.onload=setTimeout(document.getElementById('mk1').click(),1000);
</script>

<a id="mk1" href="some url">click me</a>

Ответы [ 2 ]

12 голосов
/ 17 мая 2011

В настоящее время ваш код вызывает click() немедленно и передает возвращаемое значение setTimeout. Вместо этого вы хотите передать ссылку на функцию setTimeout:

window.onload = function() {
  setTimeout(function() {
    document.getElementById('mk1').click();
  }, 1000);
};

Редактировать: Как указывает @ThiefMaster, вы также хотите передать функцию в onload; хотя может показаться, что это работает иначе, он не будет делать то, что действительно должен делать.

1 голос
/ 17 мая 2011

document.getElementById('mk1').click() оценивается при первом запуске скрипта. Вам нужно превратить его в функцию и передать в качестве первого параметра.

...