Is it possible to simulate a click on a webpage using javascript but without defining a specific element, but rather just specifying the document?
I would have liked
window.dispatchEvent
should do the trick.
<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>
Or... with extra MouseEvents information:
<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>
The above examples will cause a click to be simulated on window
when the button
is clicked. An event listener is added to window
to alert
when clicked, so therefore clicking the button
will indirectly trigger an alert
.
More info: http://www.howtocreate.co.uk/tutorials/javascript/domevents
In case anyone bumps into this looking for a framework agnostic way to fire any HTML and Mouse event (and set some options, if needed), have a look here: How to simulate a mouse click using JavaScript?