Document.captureEvents() (Function)

Part of the Netscape 4 event propagation complex.

Availability:

JavaScript - 1.2
Netscape - 4.0
Deprecated
Property/method value type:undefined
JavaScript syntax:NmyDocument.captureEvents(anEventMask)
Argument list:anEventMaskA mask constructed with the manifest event constants

This is part of the event management suite which allow events to be routed to handlers other than just the one that defaults to being associated with an event.

The events to be captured are signified by setting bits in a mask.

This method allows you to specify what events are to be routed to the receiving Document object.

The events are specified by using the bitwise OR operator to combine the required event mask constants into a mask that defines the events you want to capture. Refer to the Event Type Constants topic for a list of the event mask values.

A limitation of this technique is that ultimately, only 32 different kinds of events can be combined in this way and this may limit the number of events the browser can support. Since this is only supported by Netscape, the functionality is likely to be deprecated when the standards bodies agree on a standard way of handling events. Then we simply need to wait for the browser manufacturers to support the standardized behavior.

In the meantime, we shall have to implement scripts using this capability if we need to build complex event handling systems. A different script will be required for MSIE.

You may be able to factor your event handler so that you only have to make platform specific event dispatchers and can call common handling routines that can be shared between MSIE and Netscape .

The example copes with cross browser execution in an interesting way.

Warnings:

Example code:

   // A portable keyboard event handler
   // Provided by Jon Stephens
   function handleKeypress(event)
   {
   var key;
   
   if(document.layers)
   {
   key = event.which;
   }
   if(document.all)
   {
   event = window.event;
   key   = event.keyCode;
   }
   
   alert("Key: " + String.fromCharCode(key) + "\nCharacter code: " + key + ".");
   }
   if(document.layers)
   {
   document.captureEvents(Event.KEYPRESS);
   }
   document.onkeypress = handleKeypress;

See also:captureEvents(), Document object, Document.releaseEvents(), Element.onevent, Event management, Event propagation, Event type constants, Frame object, Layer.captureEvents(), Layer.releaseEvents(), onMouseMove, Window object, Window.captureEvents(), Window.releaseEvents()