MCPcopy
hub / github.com/playcanvas/engine / simulate

Function simulate

tests/input/simulate_event.js:1–50  ·  view source on GitHub ↗
(element, eventName)

Source from the content-addressed store, hash-verified

1function simulate(element, eventName)
2{
3 var defaults = extend({}, defaultOptions);
4 var options = extend(defaults, arguments[2] || {});
5 var oEvent, eventType = null;
6
7 for (var name in eventMatchers)
8 {
9 if (eventMatchers[name].test(eventName)) { eventType = name; break; }
10 }
11
12 if (!eventType) {
13 throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported');
14 }
15
16 if (document.createEvent)
17 {
18 oEvent = document.createEvent(eventType);
19 if (eventType == 'HTMLEvents') {
20 oEvent.initEvent(eventName, options.bubbles, options.cancelable);
21 }
22 else if (eventType === 'MouseEvents') {
23 oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, options.detail, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element);
24 } else if (eventType === 'KeyboardEvent') {
25 defaults = extend({}, defaultKeyboardOptions);
26 options = extend(defaults, arguments[2] || {});
27 if (oEvent.initKeyEvent) {
28 oEvent.initKeyEvent(eventName, options.bubbles, options.cancelable, document.defaultView, options.ctrl, options.shift, options.alt, options.meta, options.keyCode, options.charCode);
29 } else {
30 oEvent = document.createEvent("Events");
31 // initKeyboardEvent doesn't work property in Chrome, fudge it using plain event
32 oEvent.initEvent(eventName, options.bubbles, options.cancelable);
33 oEvent.keyCode = options.keyCode;
34 oEvent.which = options.keyCode;
35 }
36
37 }
38
39 element.dispatchEvent(oEvent);
40 }
41 else
42 {
43 options.clientX = options.pointerX;
44 options.clientY = options.pointerY;
45 var evt = document.createEventObject();
46 oEvent = extend(evt, options);
47 element.fireEvent('on' + eventName, oEvent);
48 }
49 return element;
50}
51
52function extend(destination, source) {
53 for (var property in source)

Callers 6

pressAndReleaseFunction · 0.85
pressFunction · 0.85
pressSpecialCharFunction · 0.85
releaseFunction · 0.85
test_keyboard.jsFile · 0.85
test_mouse.jsFile · 0.85

Calls 1

extendFunction · 0.70

Tested by

no test coverage detected