0.8.0

Released Released on June 25, 2015

Summary:

Features:

  • .type() now outputs "Key Events Table" which is a console.table of every key typed, the charCode, all vents that fired, and whether any were preventedDefault.

  • .type() now accepts the following special character sequences: {selectall}, {del}, {backspace}, {esc}, {{}, {enter}, {leftarrow}, {rightarrow}.

  • .type() implements cursor and selection and range accurately like a real keyboard.

  • .type() now fires change events exactly like real browsers when {enter} is used.

  • .type() will fire textInput and input events exactly like a real browser. Fixes #7.

  • .type() now follows all of the spec in regards to preventingDefault on any event that would insert a character such as keydown, keypress, textInput.

  • .type() events should be 100% identical to real browser KeyboardEvents including charCode, which, keyCode, data, etc.

  • .type() now inserts a small delay 10ms between each keystroke to simulate a real user typing.

  • input events are now correctly fired when .select() chooses an <option>.

  • change events are now fired exactly how a browser does (when an input loses focus and its value has changed since its last focus event). You'll see these fire after you use .blur() directly, or use another action command on another element.

Bugfixes:

  • Using .type() in an input[type=number] will no longer prepend the value. Fixes #26.

  • [contenteditable] elements can now be focused and blurred.

  • aborting during .click() / .dblclick() now correctly cancels remaining queued click/dblclick events.

Misc:

  • console.groups are now collapsed by default.

  • .type() now validates the chars and will throw on anything other than a string or finite number.

  • .type() now throws on empty strings.

  • Removed several libs that used to handle typing simulation and rewrote typing from scratch.