| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- var keyCodes = {
- ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108,
- NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91
- }
- function caret(input, begin, end) {
- var npt = input.jquery && input.length > 0 ? input[0] : input, range;
- if (typeof begin == 'number') {
- if (!$(input).is(':visible')) {
- return;
- }
- end = (typeof end == 'number') ? end : begin;
- if (npt.setSelectionRange) {
- npt.selectionStart = begin;
- npt.selectionEnd = end;
- } else if (npt.createTextRange) {
- range = npt.createTextRange();
- range.collapse(true);
- range.moveEnd('character', end);
- range.moveStart('character', begin);
- range.select();
- }
- } else {
- if (!$(input).is(':visible')) {
- return { "begin": 0, "end": 0 };
- }
- if (npt.setSelectionRange) {
- begin = npt.selectionStart;
- end = npt.selectionEnd;
- } else if (document.selection && document.selection.createRange) {
- range = document.selection.createRange();
- begin = 0 - range.duplicate().moveStart('character', -100000);
- end = begin + range.text.length;
- }
- return { "begin": begin, "end": end };
- }
- };
- $.fn.SendKey = function (keyCode, modifier) {
- var sendDummyKeydown = false;
- if (Object.prototype.toString.call(keyCode) == '[object String]') {
- keyCode = keyCode.charCodeAt(0);
- sendDummyKeydown = true;
- }
- switch (keyCode) {
- case keyCodes.LEFT: {
- if (modifier == undefined) {
- var pos = caret(this);
- caret(this, pos.begin - 1);
- break;
- }
- }
- case keyCodes.RIGHT: {
- if (modifier == undefined) {
- var pos = caret(this);
- caret(this, pos.begin + 1);
- break;
- }
- }
- default: {
- var keydown = $.Event("keydown"),
- keypress = $.Event("keypress"),
- keyup = $.Event("keyup");
- if (!sendDummyKeydown) {
- keydown.keyCode = keyCode;
- if (modifier == keyCodes.CONTROL)
- keydown.ctrlKey = true;
- }
- $(this).trigger(keydown);
- if (!keydown.isDefaultPrevented()) {
- keypress.keyCode = keyCode;
- if (modifier == keyCodes.CONTROL)
- keypress.ctrlKey = true;
- $(this).trigger(keypress);
- if (!keypress.isDefaultPrevented()) {
- keyup.keyCode = keyCode;
- if (modifier == keyCodes.CONTROL)
- keyup.ctrlKey = true;
- $(this).trigger(keyup);
- }
- }
- }
- }
- }
- $.fn.Type = function (inputStr) {
- var $input = $(this);
- $.each(inputStr.split(''), function (ndx, lmnt) {
- $input.SendKey(lmnt);
- });
- }
- $.fn.paste = function (inputStr) {
- var $input = $(this);
- $input[0]._valueSet(inputStr);
- $input.trigger('paste');
- }
|