Cytat(manual jQuery)
Event Properties
The following properties are guaranteed to be members of the event object, though some of their values may be undefined, depending on the event:
altKey, attrChange, attrName, bubbles, button, cancelable, charCode, clientX, clientY, ctrlKey, currentTarget, data, detail, eventPhase, fromElement, handler, keyCode, layerX, layerY, metaKey, newValue, offsetX, offsetY, originalTarget, pageX, pageY, prevValue, relatedNode, relatedTarget, screenX, screenY, shiftKey, srcElement, target, toElement, view, wheelDelta, which
tylko to są właściwości przed normalizacją, nie pamiętam czy w evencie w każdej przeglądarce jest zdefiniowana właściwość .ctrlKey
Ale jeśli jest wymagana jakaś kolejność lub kombinacja wciśniętych klawiszy to wystarczy przechwycić przy wciskaniu danego klawisza do zmiennej - czyli nasłuch na wciskanie - każdą ze zmiennych danego klawisza resetować przy podnoszeniu - czyli nasłuch na podnoszenie klawiszy...
nasłuch na klawisze możesz wykonać albo na polach typu input/textarea albo dopiero na całym obiekcie document
wklejanie możesz wykryć na 2 sposoby
1. Wciśnięte klawisze co tu podane wyżej
2. podpięcie zdarzeń w zależności od przeglądarki (to sobie nazwy doszukaj gdyż nie jestem pewien) beforePaste, onPaste, paste
jeśli zamierzałbyś stosować obie te metody to należy gdzieś zrobić małą blokadę by funkcja nie wykonywała się wiele razy...
co do drugiej metody to tekst masz wklejony dopiero po chwili - więc funkcję musisz odpalić z timoutem
wklejany tekst możesz spokojnie przechwycić, musisz tylko przy wykryciu zdarzenia wklejania przekierować na inny aktywny element
jeszcze co przeglądarka trochę inaczej wyglądają zdarzenia onkeydown i onkeypress (ale to tylko delikatne niuanse)
swoją drogą z dzisiejszą wiedzą trochu inaczej bym napisał te rozwinięcia do edytora na manifo.pl ;p gdzie w edytorze wysiwgn jest też przechwytywany kod html wklejany z innych stron...