Created
September 29, 2014 00:34
-
-
Save austinpray/0107f7d7057fda28d2dd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function simulate(element, eventName) | |
{ | |
var options = extend(defaultOptions, arguments[2] || {}); | |
var oEvent, eventType = null; | |
for (var name in eventMatchers) | |
{ | |
if (eventMatchers[name].test(eventName)) { eventType = name; break; } | |
} | |
if (!eventType) | |
throw new SyntaxError('Only HTMLEvents and MouseEvents interfaces are supported'); | |
if (document.createEvent) | |
{ | |
oEvent = document.createEvent(eventType); | |
if (eventType == 'HTMLEvents') | |
{ | |
oEvent.initEvent(eventName, options.bubbles, options.cancelable); | |
} | |
else | |
{ | |
oEvent.initMouseEvent(eventName, options.bubbles, options.cancelable, document.defaultView, | |
options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, | |
options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element); | |
} | |
element.dispatchEvent(oEvent); | |
} | |
else | |
{ | |
options.clientX = options.pointerX; | |
options.clientY = options.pointerY; | |
var evt = document.createEventObject(); | |
oEvent = extend(evt, options); | |
element.fireEvent('on' + eventName, oEvent); | |
} | |
return element; | |
} | |
function extend(destination, source) { | |
for (var property in source) | |
destination[property] = source[property]; | |
return destination; | |
} | |
var eventMatchers = { | |
'HTMLEvents': /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/, | |
'MouseEvents': /^(?:click|dblclick|mouse(?:down|up|over|move|out))$/ | |
} | |
var defaultOptions = { | |
pointerX: 0, | |
pointerY: 0, | |
button: 0, | |
ctrlKey: false, | |
altKey: false, | |
shiftKey: false, | |
metaKey: false, | |
bubbles: true, | |
cancelable: true | |
} | |
window.setInterval(function () { simulate(document.getElementById("make_btn"), "click", { pointerX: 123, pointerY: 321 }) }, 200); | |
window.setInterval(function () { simulate(document.getElementById("sell_btn"), "click", { pointerX: 123, pointerY: 100 }) }, 300) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment