Имитация клика с помощью JavaScript на документе - PullRequest
7 голосов
/ 23 мая 2010

Можно ли смоделировать щелчок по веб-странице, используя javascript, но не определяя конкретный элемент, а просто указав документ?

Я бы хотел сделать что-то подобное, и если в местоположении есть ссылка, то будет нажата:

function simulateClick(x, y) 
{
    var evt = window.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
        x, y, x, y, 1, false, false, false, false, 0, null);

    window.dispatchEvent(evt);
}

Ответы [ 2 ]

8 голосов
/ 23 мая 2010

window.dispatchEvent должно помочь.

<script>
function simulateClick() {
  var evt = document.createEvent("Events");
  evt.initEvent("click", true, true);
  window.dispatchEvent(evt);
}
addEventListener('click',function(){alert('test');},false);
</script>
<button onclick="simulateClick();">Go</button>

Или ... с дополнительной информацией MouseEvents:

<script>
function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null);
  window.dispatchEvent(evt);
}
addEventListener('click',function(){alert('test');},false);
</script>
<button onclick="simulateClick();">Go</button>

Приведенные выше примеры приведут к симуляции клика window при нажатии button.Прослушиватель событий добавляется к window к alert при нажатии, поэтому нажатие button косвенно вызовет alert.

Дополнительная информация: http://www.howtocreate.co.uk/tutorials/javascript/domevents

0 голосов
/ 28 мая 2011

В случае, если кто-то столкнется с этим в поисках независимого от фреймворка способа запускающего любое событие HTML и мыши (и при необходимости установите некоторые параметры), посмотрите здесь: Как смоделировать щелчок мыши с помощью JavaScript?

...