This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The sendMouseEvent() method of the HTMLIFrameElement interface allows you to fake a mouse event and send it to the browser <iframe>'s content.


instanceOfHTMLIframeElement.sendMouseEvent(type, x, y, button,
                                           clickCount, modifiers);




A string representing the event type. Possible values are mousedown, mouseup, mousemove, mouseover, mouseout, or contextmenu.
A number representing the x position of the cursor relative to the browser <iframe>'s visible area in CSS pixels.
A number representing the y position of the cursor relative to the browser <iframe>'s visible area in CSS pixels.
A number representing which button has been pressed on the mouse: 0 (Left button), 1 (middle button), or 2 (right button).
The number of clicks that should be performed.
A number representing a key pressed at the same time the mouse button was clicked:
  • 1Alt
  • 2Ctrl
  • 4Shift
  • 8Meta
  • 16Alt Gr
  • 32Caps Lock
  • 64Fn
  • 128Num Lock
  • 256Scroll
  • 512Symbol Lock
  • 1024Win

Note: You can specify multiple key modifiers separated by a pipe symbol, for example 1 | 1014.


var browser = document.querySelector('iframe');
browser.sendMouseEvent("mousemove", x, y, 0, 0, 0);
browser.sendMouseEvent("mousedown", x, y, 0, 1, 0);
browser.sendMouseEvent("mouseup", x, y, 0, 1, 0);


Not part of any specification.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support No No471 No No No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No No No No No No ?

1. Supported in chrome code only.

See also

Document Tags and Contributors

Last updated by: sideshowbarker,