events.KeyHandler Extends goog.events.EventTarget
A wrapper around an element that you want to listen to keyboard events on.

Inheritance

Constructor

goog.events.KeyHandler(opt_elementopt_capture)

Parameters

opt_element : Element | Document=
The element or document to listen on.
opt_capture : boolean=
Whether to listen for browser events in capture phase (defaults to false).

Instance Methods

Public Protected Private
attach(elementopt_capture)
Adds the proper key event listeners to the element.
Arguments:
element : Element | Document
The element to listen on.
opt_capture : boolean=
Whether to listen for browser events in capture phase (defaults to false).
code »
detach()
Removes the listeners that may exist.
code »
disposeInternal()
No description.
code »
getElement() Element | Document | null
Returns the element listened on for the real keyboard events.
Returns: Element | Document | null  The element listened on for the real keyboard events.
code »
handleEvent(e)
Handles the events on the element.
Arguments:
e : goog.events.BrowserEvent
The keyboard event sent from the browser.
code »
handleKeyDown_(e)
Records the keycode for browsers that only returns the keycode for key up/ down events. For browser/key combinations that doesn't trigger a key pressed event it also fires the patched key event.
Arguments:
e : goog.events.BrowserEvent
The key down event.
code »
handleKeyup_(e)
Clears the stored previous key value, resetting the key repeat status. Uses -1 because the Safari 3 Windows beta reports 0 for certain keys (like Home and End.)
Arguments:
e : goog.events.BrowserEvent
The keyup event.
code »
resetState()
Resets the stored previous values. Needed to be called for webkit which will not generate a key up for meta key operations. This should only be called when having finished with repeat key possiblities.
code »
addEventListener(typeopt_captureopt_handlerScope)
Use #listen instead, when possible. Otherwise, use goog.events.listen if you are passing Object (instead of Function) as handler. Adds an event listener to the event target. The same handler can only be added once per the type. Even if you add the same handler multiple times using the same type then it will only be called once when the event is dispatched.
Arguments:
type : string
The type of the event to listen for.
: ?function():? | ?{handleEvent:function():?
No description.
opt_capture : boolean=
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope : Object=
Object in whose scope to call the listener.
code »
assertInitialized_()
Asserts that the event target instance is initialized properly.
code »
dispatchEvent()
No description.
code »
disposeInternal()
Removes listeners from this object. Classes that extend EventTarget may need to override this method in order to remove references to DOM Elements and additional listeners.
code »
fireListeners()
No description.
code »
getListener()
No description.
code »
getListeners()
No description.
code »
getParentEventTarget() goog.events.EventTarget
Returns the parent of this event target to use for bubbling.
Returns: goog.events.EventTarget  The parent EventTarget or null if there is no parent.
code »
hasListener()
No description.
code »
listen()
No description.
code »
listenOnce()
No description.
code »
removeAllListeners()
No description.
code »
removeEventListener(typeopt_captureopt_handlerScope)
Use #unlisten instead, when possible. Otherwise, use goog.events.unlisten if you are passing Object (instead of Function) as handler. Removes an event listener from the event target. The handler must be the same object as the one added. If the handler has not been added then nothing is done.
Arguments:
type : string
The type of the event to listen for.
: ?function():? | ?{handleEvent:function():?
No description.
opt_capture : boolean=
In DOM-compliant browsers, this determines whether the listener is fired during the capture or bubble phase of the event.
opt_handlerScope : Object=
Object in whose scope to call the listener.
code »
setParentEventTarget(parent)
Sets the parent of this event target to use for capture/bubble mechanism.
Arguments:
parent : goog.events.EventTarget
Parent listenable (null if none).
code »
setTargetForTesting(target)
Sets the target to be used for event.target when firing event. Mainly used for testing. For example, see goog.testing.events.mixinListenable.
Arguments:
target : !Object
The target.
code »
unlisten()
No description.
code »
unlistenByKey()
No description.
code »
addOnDisposeCallback(callbackopt_scope)
Invokes a callback function when this object is disposed. Callbacks are invoked in the order in which they were added.
Arguments:
callback : function(this:T):?
The callback function.
opt_scope : T=
An optional scope to call the callback in.
code »
dispose() void
Disposes of the object. If the object hasn't already been disposed of, calls #disposeInternal. Classes that extend goog.Disposable should override #disposeInternal in order to delete references to COM objects, DOM nodes, and other disposable objects. Reentrant.
Returns: void  Nothing.
code »
disposeInternal()
Deletes or nulls out any references to COM objects, DOM nodes, or other disposable objects. Classes that extend goog.Disposable should override this method. Not reentrant. To avoid calling it twice, it must only be called from the subclass' disposeInternal method. Everywhere else the public dispose method must be used. For example:
  mypackage.MyClass = function() {
    mypackage.MyClass.base(this, 'constructor');
    // Constructor logic specific to MyClass.
    ...
  };
  goog.inherits(mypackage.MyClass, goog.Disposable);

  mypackage.MyClass.prototype.disposeInternal = function() {
    // Dispose logic specific to MyClass.
    ...
    // Call superclass's disposeInternal at the end of the subclass's, like
    // in C++, to avoid hard-to-catch issues.
    mypackage.MyClass.base(this, 'disposeInternal');
  };
code »
getDisposed() boolean
Use #isDisposed instead. No description.
Returns: boolean  Whether the object has been disposed of.
code »
isDisposed() boolean
No description.
Returns: boolean  Whether the object has been disposed of.
code »
registerDisposable(disposable)
Associates a disposable object with this object so that they will be disposed together.
Arguments:
disposable : goog.disposable.IDisposable
that will be disposed when this object is disposed.
code »

Instance Properties

altKey_ :
Alt key recorded for key down events. FF on Mac does not report the alt key flag in the key press event, we need to record it in the key down phase.
Code »
constructor :
No description.
Code »
element_ :
This is the element that we will listen to the real keyboard events on.
Code »
keyCode_ :
Keycode recorded for key down events. As most browsers don't report the keycode in the key press event we need to record it in the key down phase.
Code »
keyDownKey_ :
The key for the key down listener.
Code »
keyPressKey_ :
The key for the key press listener.
Code »
keyUpKey_ :
The key for the key up listener.
Code »
lastKey_ :
Used to detect keyboard repeat events.
Code »
actualEventTarget_ : goog.events.EventTarget
The object to use for event.target. Useful when mixing in an EventTarget to another object.
Code »
constructor :
No description.
Code »
eventTargetListeners_ : goog.events.ListenerMap
Maps of event type to an array of listeners.
Code »
parentEventTarget_ : goog.events.EventTarget
Parent event target, used during event bubbling. TODO(user): Change this to goog.events.Listenable. This currently breaks people who expect getParentEventTarget to return goog.events.EventTarget.
Code »
creationStack :
If monitoring the goog.Disposable instances is enabled, stores the creation stack trace of the Disposable instance.
Code »
disposed_ :
Whether the object has been disposed of.
Code »
onDisposeCallbacks_ :
Callbacks to invoke when this object is disposed.
Code »

Static Properties

goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_ :
If true, the alt key flag is saved during the key down and reused when handling the key press. FF on Mac does not set the alt flag in the key press event.
Code »
goog.events.KeyHandler.USES_KEYDOWN_ :
If true, the KeyEvent fires on keydown. Otherwise, it fires on keypress.
Code »
goog.events.KeyHandler.keyIdentifier_ :
An enumeration of key identifiers currently part of the W3C draft for DOM3 and their mappings to keyCodes. http://www.w3.org/TR/DOM-Level-3-Events/keyset.html#KeySet-Set This is currently supported in Safari and should be platform independent.
Code »
goog.events.KeyHandler.safariKey_ :
An enumeration of key codes that Safari 2 does incorrectly
Code »
goog.events.KeyHandler.superClass_ :
No description.
Code »

Enumerations

goog.events.KeyHandler.EventType :
Enum type for the events fired by the key handler
Constants:
KEY
No description.
Code »

Package events

Package Reference