Skip to content

Instantly share code, notes, and snippets.

@sshmyg
Last active March 22, 2016 08:13
Show Gist options
  • Save sshmyg/386e70c29e6ba3ada935 to your computer and use it in GitHub Desktop.
Save sshmyg/386e70c29e6ba3ada935 to your computer and use it in GitHub Desktop.
Keyboard simulator
var E = {
createEvent: function(e, keyValue, keyCode) {
e = e || 'keypress';
keyValue = keyValue ? keyValue.charCodeAt(0) : keyCode;
if (!(e || keyValue)) {
throw Error('e and keyValue required');
}
var evt = document.createEvent('Events');
evt.initEvent(e, true, true);
evt.view = window;
evt.altKey = false;
evt.ctrlKey = false;
evt.shiftKey = false;
evt.metaKey = false;
evt.keyCode = keyValue;
evt.charCode = keyValue;
document.dispatchEvent(evt);
return this;
},
scan: function(str, evt, isNumber) {
evt = evt || 'keydown';
var strArr = !isNumber && str.split('');
var self = this;
if (!isNumber) {
strArr.forEach(function(item) {
self.createEvent(evt, item);
});
} else {
self.createEvent(evt, false, parseInt(str, 10));
}
return this;
},
start: function(ticketNumber, ticketCode) {
this.scan(ticketNumber + '!' + ticketCode, 'keypress');
this.scan(13, 'keydown', true);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment