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.

Revisions

  1. Serhey revised this gist Mar 22, 2016. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions keysimulator.js
    Original file line number Diff line number Diff line change
    @@ -39,8 +39,8 @@ var E = {

    return this;
    },
    start: function() {
    this.scan('0100017920!779346', 'keypress');
    start: function(ticketNumber, ticketCode) {
    this.scan(ticketNumber + '!' + ticketCode, 'keypress');
    this.scan(13, 'keydown', true);
    }
    };
  2. Serhey created this gist Mar 22, 2016.
    46 changes: 46 additions & 0 deletions keysimulator.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,46 @@
    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() {
    this.scan('0100017920!779346', 'keypress');
    this.scan(13, 'keydown', true);
    }
    };