--- a/html/DOM3-Events.html Fri Sep 19 04:01:46 2008 +0900
+++ b/html/DOM3-Events.html Sat Sep 20 14:18:18 2008 +0900
@@ -15,10 +15,9 @@
<link rel="author" href="mailto:public-webapps@w3.org"/>
<link rel="help" href="http://www.w3.org/DOM/"/>
+ <link rel="alternate stylesheet" type="text/css" media="screen" title="geek" href="geek.css" />
<link rel="stylesheet" type="text/css" href="./spec.css"/>
- <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-MO"/>
- <link rel="alternate stylesheet" type="text/css" media="screen" title="geek" href="geek.css" />
-
+ <link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-ED"/>
<style type="text/css">
.issue {
background-color: darkgray;
@@ -96,8 +95,7 @@
</style>
</head>
<body>
- <a id="Overview" name="Overview"> </a>
- <div class="head">
+ <div id="Overview" class="head">
<p>
<a href="http://www.w3.org/">
<img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"/>
@@ -194,13 +192,11 @@
<a class="tocxref" href="#def-index">Index</a>
</li>
</ul>
- <a id="expanded-toc" name="expanded-toc"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="expanded-toc" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="expanded-toc-TOC" id="expanded-toc-TOC"> </a>
- <h1 id="expanded-toc-TOC-h1" class="div1">Expanded Table of Contents</h1>
+ <h1 id="expanded-toc-TOC" class="div1">Expanded Table of Contents</h1>
<ul class="toc">
<li class="tocline2">
<a class="tocxref" href="#expanded-toc">Expanded Table of Contents</a>
@@ -388,22 +384,18 @@
</ul>
</div>
<!-- div1 TOC -->
- <a id="copyright-notice" name="copyright-notice"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="copyright-notice" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="copyright-notice-Copyright-Notice" id="copyright-notice-Copyright-Notice"> </a>
- <h1 id="copyright-notice-Copyright-Notice-h1" class="div1">W3C Copyright Notices and Licenses</h1>
+ <h1 id="copyright-notice-Copyright-Notice" class="div1">W3C Copyright Notices and Licenses</h1>
<p>
<strong>Copyright © 2008 <a class="normative" href="http://www.w3.org/">World Wide Web Consortium</a>, (<a class="normative" href="http://www.lcs.mit.edu/">Massachusetts Institute of Technology</a>, <a class="normative" href="http://www.ercim.org/">European Research Consortium for Informatics and Mathematics</a>, <a class="normative" href="http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.</strong>
</p>
<p>This document is published under the <a href="#copyright-notice-Copyright-notice-document">W3C<sup>®</sup> Document Copyright Notice and License</a>. The bindings within this document are published under the <a href="#copyright-notice-Copyright-notice-software">W3C<sup>®</sup> Software Copyright Notice and License</a>. The software license requires "Notice of any changes or modifications to the W3C files, including the date changes were made." Consequently, modified versions of the DOM bindings must document that they do not conform to the W3C standard; in the case of the IDL definitions, the pragma prefix can no longer be 'w3c.org'; in the case of the Java language binding, the package names can no longer be in the 'org.w3c' package.</p>
<div class="div2">
- <a name="copyright-notice-Copyright-notice-document"
- id="copyright-notice-Copyright-notice-document"/>
<hr width="50" align="center" title="Area separator"/>
- <h2 id="copyright-notice-Copyright-notice-document-h2" class="div2">W3C<sup>®</sup> Document Copyright Notice and License</h2>
+ <h2 id="copyright-notice-Copyright-notice-document" class="div2">W3C<sup>®</sup> Document Copyright Notice and License</h2>
<p><strong>Note:</strong> This section is a copy of the W3C<sup>®</sup> Document Notice and License and could be found at <a class="normative" href="http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231">http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231</a>.</p>
<p>
<strong>Copyright © 2008 <a class="normative" href="http://www.w3.org/">World Wide Web Consortium</a>, (<a class="normative" href="http://www.lcs.mit.edu/">Massachusetts Institute of Technology</a>, <a class="normative" href="http://www.ercim.org/">European Research Consortium for Informatics and Mathematics</a>, <a class="normative" href="http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.</strong>
@@ -426,10 +418,8 @@
</div>
<!-- div2 Copyright-notice-document -->
<div class="div2">
- <a name="copyright-notice-Copyright-notice-software"
- id="copyright-notice-Copyright-notice-software"/>
<hr width="50" align="center" title="Area separator"/>
- <h2 id="copyright-notice-Copyright-notice-software-h2" class="div2">W3C<sup>®</sup> Software Copyright Notice and License</h2>
+ <h2 id="copyright-notice-Copyright-notice-software" class="div2">W3C<sup>®</sup> Software Copyright Notice and License</h2>
<p><strong>Note:</strong> This section is a copy of the W3C<sup>®</sup> Software Copyright Notice and License and could be found at <a class="normative" href="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231</a></p>
<p>
<strong>Copyright © 2008 <a class="normative" href="http://www.w3.org/">World Wide Web Consortium</a>, (<a class="normative" href="http://www.lcs.mit.edu/">Massachusetts Institute of Technology</a>, <a class="normative" href="http://www.ercim.org/">European Research Consortium for Informatics and Mathematics</a>, <a class="normative" href="http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.</strong>
@@ -450,9 +440,7 @@
</div>
<!-- div2 Copyright-notice-software -->
<div class="div2">
- <a name="copyright-notice-Copyright-short-notice"
- id="copyright-notice-Copyright-short-notice"/>
- <h2 id="copyright-notice-Copyright-short-notice-h2" class="div2">W3C<sup>®</sup> Short Software Notice</h2>
+ <h2 id="copyright-notice-Copyright-short-notice" class="div2">W3C<sup>®</sup> Short Software Notice</h2>
<p><strong>Note:</strong> This section is a copy of the W3C<sup>®</sup> Short Software Notice and could be found at <a class="normative" href="http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231">http://www.w3.org/Consortium/Legal/2002/copyright-software-short-notice-20021231</a></p>
<p>
<strong>Copyright © 2008 <a class="normative" href="http://www.w3.org/">World Wide Web Consortium</a>, (<a class="normative" href="http://www.lcs.mit.edu/">Massachusetts Institute of Technology</a>, <a class="normative" href="http://www.ercim.org/">European Research Consortium for Informatics and Mathematics</a>, <a class="normative" href="http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.</strong>
@@ -463,13 +451,11 @@
<!-- div2 Copyright-short-notice -->
</div>
<!-- div1 Copyright-Notice -->
- <a id="events" name="events"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="events" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="events-Events" id="events-Events"> </a>
- <h1 id="events-Events-h1" class="div1">1. Document Object Model Events</h1>
+ <h1 id="events-Events" class="div1">1. Document Object Model Events</h1>
<dl>
<dt><em>Editors</em>:</dt>
<dd>Doug Schepers, W3C</dd>
@@ -594,13 +580,11 @@
</ul>
</div>
<div class="div2">
- <a name="events-Events-overview" id="events-Events-overview"> </a>
- <h2 id="events-Events-overview-h2" class="div2">1.1 Introduction</h2>
+ <h2 id="events-Events-overview" class="div2">1.1 Introduction</h2>
<p>DOM Events is designed with two main goals. The first goal is the design of an <a href="#glossary-dt-event">event</a> system which allows registration of event listeners and describes event flow through a tree structure. Additionally, the specification will provide standard modules of events for user interface control and document mutation notifications, including defined contextual information for each of these event modules.</p>
<p>The second goal of DOM Events is to provide a common subset of the current event systems used in <a href="#glossary-dt-DOM-Level-0">DOM Level 0</a> browsers. This is intended to foster interoperability of existing scripts and content. It is not expected that this goal will be met with full backwards compatibility. However, the specification attempts to achieve this when possible.</p>
<div class="div3">
- <a name="events-Conformance" id="events-Conformance"> </a>
- <h3 id="events-Conformance-h3" class="div3">1.1.1 Conformance</h3>
+ <h3 id="events-Conformance" class="div3">1.1.1 Conformance</h3>
<p>This specification is to be understood in the context of the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>] and the general considerations for DOM implementations apply. For example, handling of <a href="#glossary-dt-namespaceURI">namespace URIs</a> is discussed in <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>, and behavior in exceptional circumstances (such as when a <code>null</code> argument is passed when <code>null</code> was not expected) is discussed under <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-17189187"><em>DOMException</em></a>. For additional information about <a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/introduction.html#ID-Conformance"><em>conformance</em></a>, please see the DOM Level 3 Core specification [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>].</p>
<p>An implementation is DOM Level 3 Events conformant if it supports the Core module defined in [<cite><a class="noxref normative" href="#references-DOM2Core">DOM Level 2 Core</a></cite>], the <a href="#events-Events-flow">Event dispatch and DOM event flow</a> mechanism and the interfaces with their associated semantics defined in <a href="#events-Events-interface">Basic interfaces</a>. An implementation conforms to a DOM Level 3 Events module if it conforms to DOM Level 3 Events, the event types defined in the module, and the modules the module depends upon (if any).</p>
@@ -618,8 +602,7 @@
<!-- div2 Events-overview -->
<div class="div2">
- <a name="events-Events-flow" id="events-Events-flow"> </a>
- <h2 id="events-Events-flow-h2" class="div2">1.2 Event dispatch and DOM event flow</h2>
+ <h2 id="events-Events-flow" class="div2">1.2 Event dispatch and DOM event flow</h2>
<p>This section defines the event <a href="#glossary-dt-dispatch">dispatch</a> mechanism of the event model defined in this specification. <span class='assert may'>Applications may dispatch event objects using the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method</span>, and <span class='assert must'>implementations must dispatch event objects as if through this method.</span> The behavior of this method depends on the <em>event flow</em> associated with the underlying object. An event flow describes how event objects <em>propagate</em> through a data structure. As an example, when an event object is dispatched to an element in an XML document, the object propagates through parts of the document, as determined by the DOM event flow which is defined at the end of this section.</p>
<div class="figure" style="text-align: center">
@@ -658,18 +641,16 @@
</div>
<!-- div2 Events-flow -->
<div class="div2">
- <a name="events-Events-flow-cancelation" id="events-Events-flow-cancelation"> </a>
- <h2 id="events-Events-flow-cancelation-h2" class="div2">1.3 Default actions and cancelable events</h2>
+ <h2 id="events-Events-flow-cancelation" class="div2">1.3 Default actions and cancelable events</h2>
<p>Event objects can have default actions associated with them. These are actions the implementation will perform in combination with the dispatch of the event object, usually after the dispatch has been completed, but in exceptional cases also immediately before the event is dispatched. An example is the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] form element. When the user submits the form (e.g. by pressing on a submit button), the event <a href="#events-event-submit">submit</a> is dispatched to the element and the default action for this event type is generally to send a request to a Web server with the parameters from the form.</p>
- <p><a name="events-dt-cancelable-event" id="events-dt-cancelable-event"/> Some event objects are <em>cancelable</em>, meaning the default action can be prevented from occuring, or, if the default action is carried out before the dispatch, its effect can be reversed. Whether an event object is cancelable is indicated by the <a href="#events-Events-Event-canCancel"><code>Event.cancelable</code></a> attribute. Event listeners can cancel default actions of cancelable event objects by invoking the <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> method, and determine whether an event has been canceled through the <a href="#events-Events-Event-defaultPrevented"><code>Event.defaultPrevented</code></a> attribute while the object is being dispatched, or from the return value of the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method for event objects dispatched by the DOM application itself.</p>
+ <p id="events-dt-cancelable-event">Some event objects are <em>cancelable</em>, meaning the default action can be prevented from occuring, or, if the default action is carried out before the dispatch, its effect can be reversed. Whether an event object is cancelable is indicated by the <a href="#events-Events-Event-canCancel"><code>Event.cancelable</code></a> attribute. Event listeners can cancel default actions of cancelable event objects by invoking the <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> method, and determine whether an event has been canceled through the <a href="#events-Events-Event-defaultPrevented"><code>Event.defaultPrevented</code></a> attribute while the object is being dispatched, or from the return value of the <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a> method for event objects dispatched by the DOM application itself.</p>
<p>This specification does not offer features to programatically query if an event object has any default action associated to it or associate new ones. It is expected that other specifications define what default actions, if any, are associated with certain event objects. Further, implementations may associate default actions with events as necessary and appropriate. As an example, an implementation may scroll a document view by a certain amount as default action of a mouse wheel event.</p>
</div>
<!-- div2 Events-flow-cancelation -->
<div class="div2">
- <a name="events-Events-flow-activation" id="events-Events-flow-activation"> </a>
- <h2 id="events-Events-flow-activation-h2" class="div2">1.4 Activation requests and behavior</h2>
+ <h2 id="events-Events-flow-activation" class="div2">1.4 Activation requests and behavior</h2>
<p>(This section is currently being rewritten.)</p>
- <p>Event targets may have associated <em>activation behavior</em> that implementations perform in response to an <em>activation request</em>. As an example, the typical activiation behavior associated with hyperlinks is to follow the link. Activation requests are typically initiated by users through an input device.</p>
+ <p>Event targets may have associated <a href="#glossary-dt-activation-behavior">activation behavior</a> that implementations perform in response to an <em>activation request</em>. As an example, the typical activiation behavior associated with hyperlinks is to follow the link. Activation requests are typically initiated by users through an input device.</p>
<p>In terms of this specification, the activation behavior of the event target is the default action of the event type <a href="#events-event-DOMActivate">DOMActivate</a>. DOM applications should use this event type whenever they wish to make or react to an activation request.</p>
<p>Implementations dispatch the <code>DOMActivate</code> event as default action of a <a href="#events-event-click">click</a> event. This click event is either part of the activation request (e.g., a user requests activiation using a mouse), or synthesized by the implementation to accomodate legacy applications. Context information of such a <code>click</code> event is implementation dependent.</p>
<p>When implementations dispatch a synthesized <code>click</code> event, the expectation is that they do so as default action of another event type. For example, when a user activates a hyperlink using a keyboard, the <code>click</code> event would be dispatched as default action of the respective keyboard event.</p>
@@ -678,12 +659,10 @@
</div>
<!-- div2 Events-flow-activation -->
<div class="div2">
- <a name="events-Event-types" id="events-Event-types"> </a>
- <h2 id="events-Event-types-h2" class="div2">1.5 Event types</h2>
+ <h2 id="events-Event-types" class="div2">1.5 Event types</h2>
<p>Each event is associated with a type, called <em>event type</em> and available as the <a class="noxref" href="#events-Events-Event-type"><code class="interface-attribute">type</code></a> attribute on the event object. The event type is composed of a <a href="#glossary-dt-localname">local name</a> and a <a href="#glossary-dt-namespaceURI">namespace URI</a> as used in [<cite><a class="noxref normative" href="#references-DOMCore">DOM Level 3 Core</a></cite>]. All events defined in this specification are in no namespace.</p>
<div class="div3">
- <a name="events-Events-EventTypes-complete" id="events-Events-EventTypes-complete"> </a>
- <h3 id="events-Events-EventTypes-complete-h3" class="div3">1.5.1 Complete list of event types</h3>
+ <h3 id="events-Events-EventTypes-complete" class="div3">1.5.1 Complete list of event types</h3>
<p>Depending on the level of DOM support, or the devices used for display (e.g. screen) or interaction (e.g., mouse, keyboard, touch screen, or voice), these event types can be generated by the implementation. When used with an [<cite><a class="noxref informative" href="#references-XML">XML 1.0</a></cite>] or [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] application, the specifications of those languages may restrict the semantics and scope (in particular the possible target nodes) associated with an event type. Refer to the specification defining the language used in order to find those restrictions or to find event types that are not defined in this document.</p>
<p>The following table provides a non-normative summary of the event types defined in this specification. All event types are in no namespace and this specification refers to them by their local name only. All events will accomplish the capture and target phases, but not all of them will accomplish the bubbling phase (see also <a href="#events-Events-flow">Event dispatch and DOM event flow</a>). Some events are not <a href="#events-dt-cancelable-event">cancelable</a> (see <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>). Some events will only be dispatched to a specific set of possible targets in the DOM event flow, specified using node types. Contextual information related to the event type is accessible using DOM interfaces.</p>
<table border="1" cellpadding="2" cellspacing="0"
@@ -959,8 +938,7 @@
<!-- div2 Event-types -->
<div class="div2">
- <a name="events-Events-interface" id="events-Events-interface"> </a>
- <h2 id="events-Events-interface-h2" class="div2">1.6 Basic interfaces</h2>
+ <h2 id="events-Events-interface" class="div2">1.6 Basic interfaces</h2>
<p>The interfaces described in this section are fundamental to DOM Level 3 Events and must always be supported by the implementation. Together they define the feature Events 3.0.</p>
<dl>
<dt><strong>Interface <em>
@@ -1015,8 +993,7 @@
</dd>
<dt>
<strong>Definition group <em>
- <a name="events-Events-Event-eventPhaseType"
- id="events-Events-Event-eventPhaseType">PhaseType</a>
+ <a name="events-Events-Event-eventPhaseType" id="events-Events-Event-eventPhaseType">PhaseType</a>
</em></strong>
</dt>
<dd>
@@ -1057,13 +1034,11 @@
</code> of type <code>boolean</code>, readonly</dt>
<dd>Used to indicate whether or not an event can have its default action prevented (see also <a href="#events-Events-flow-cancelation">Default actions and cancelable events</a>). If the default action can be prevented the value is <code>true</code>, otherwise the value is <code>false</code>.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-Event-currentTarget"
- id="events-Events-Event-currentTarget">currentTarget</a>
+ <a name="events-Events-Event-currentTarget" id="events-Events-Event-currentTarget">currentTarget</a>
</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
<dd>Used to indicate the <a href="#events-Events-EventTarget"><code>EventTarget</code></a> whose <a href="#events-Events-EventListener"><code>EventListeners</code></a> are currently being processed. This is particularly useful during the capture and bubbling phases. When used with the <a href="#events-Events-flow">Event dispatch and DOM event flow</a>, this attribute contains the <a href="#glossary-dt-target-node">target node</a> or a target ancestor.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-Event-defaultPrevented"
- id="events-Events-Event-defaultPrevented">defaultPrevented</a>
+ <a name="events-Events-Event-defaultPrevented" id="events-Events-Event-defaultPrevented">defaultPrevented</a>
</code> of type <code>boolean</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
<dd>Used to indicate whether <a href="#events-Events-Event-preventDefault"><code>Event.preventDefault()</code></a> has been called for this event.<br/></dd>
<dt><code class="attribute-name">
@@ -1071,8 +1046,7 @@
</code> of type <code>unsigned short</code>, readonly</dt>
<dd>Used to indicate which phase of event flow is currently being accomplished.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-Event-namespaceURI"
- id="events-Events-Event-namespaceURI">namespaceURI</a>
+ <a name="events-Events-Event-namespaceURI" id="events-Events-Event-namespaceURI">namespaceURI</a>
</code> of type <code>DOMString</code>, readonly, introduced in <strong class="version">DOM Level 3</strong></dt>
<dd>The <a href="#glossary-dt-namespaceURI">namespace URI</a> associated with this event at initialization time, or <code>null</code> if it is unspecified.<br />
DOM Level 2 Events initialization methods, such as <a href="#events-Events-Event-initEvent"><code>Event.initEvent()</code></a>, set the value to null.<br/></dd>
@@ -1156,8 +1130,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-preventDefault"
- id="events-Events-Event-preventDefault">preventDefault</a>
+ <a name="events-Events-Event-preventDefault" id="events-Events-Event-preventDefault">preventDefault</a>
</code>
</dt>
<dd>
@@ -1176,8 +1149,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-stopImmediatePropagation"
- id="events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a>
+ <a name="events-Events-Event-stopImmediatePropagation" id="events-Events-Event-stopImmediatePropagation">stopImmediatePropagation</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Prevents other event listeners from being triggered and, unlike <a href="#events-Events-Event-stopPropagation"><code>Event.stopPropagation()</code></a> its effect is immediate . Once it has been called, further calls to this method have no additional effect.
@@ -1195,8 +1167,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-stopPropagation"
- id="events-Events-Event-stopPropagation">stopPropagation</a>
+ <a name="events-Events-Event-stopPropagation" id="events-Events-Event-stopPropagation">stopPropagation</a>
</code>
</dt>
<dd>
@@ -1234,7 +1205,11 @@
<pre>
// Introduced in DOM Level 3:
interface <a class="noxref" href="#events-Events-CustomEvent">CustomEvent</a> : <a class="noxref" href="#events-Events-Event">Event</a> {
- readonly attribute DOMObject <a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>;
+ readonly attribute DOMObject <a class="noxref" href="#events-Events-CustomEvent-detail">detail</a>;
+ void <a class="noxref" href="#events-Events-Event-initCustomEvent">initCustomEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in DOMObject detailArg);
void <a class="noxref" href="#events-Events-Event-initCustomEventNS">initCustomEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
@@ -1251,8 +1226,7 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-CustomEvent-detail"
- id="events-Events-CustomEvent-detail">detail</a>
+ <a name="events-Events-CustomEvent-detail" id="events-Events-CustomEvent-detail">detail</a>
</code> of type <code>DOMObject</code>, readonly</dt>
<dd>Specifies some detail information about the <a href="#events-Events-Event"><code>Event</code></a>.<br/></dd>
</dl>
@@ -1263,8 +1237,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initCustomEventNS"
- id="events-Events-Event-initCustomEventNS">initCustomEventNS</a>
+ <a name="events-Events-Event-initCustomEventNS" id="events-Events-Event-initCustomEventNS">initCustomEventNS</a>
</code>
</dt>
<dd>
@@ -1348,8 +1321,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-EventTarget-addEventListener"
- id="events-Events-EventTarget-addEventListener">addEventListener</a>
+ <a name="events-Events-EventTarget-addEventListener" id="events-Events-EventTarget-addEventListener">addEventListener</a>
</code>
</dt>
<dd>
@@ -1378,8 +1350,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-EventTargetGroup-addEventListenerNS"
- id="events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a>
+ <a name="events-Events-EventTargetGroup-addEventListenerNS" id="events-Events-EventTargetGroup-addEventListenerNS">addEventListenerNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Registers an event listener, depending on the <code>useCapture</code> parameter, on the capture phase of the DOM event flow or its target and bubbling phases.
@@ -1409,8 +1380,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-EventTarget-dispatchEvent"
- id="events-Events-EventTarget-dispatchEvent">dispatchEvent</a>
+ <a name="events-Events-EventTarget-dispatchEvent" id="events-Events-EventTarget-dispatchEvent">dispatchEvent</a>
</code> modified in <strong class="version">DOM Level 3</strong></dt>
<dd>
<div class="method">Dispatches an event into the implementation's event model. The <a href="#glossary-dt-event-target">event target</a> of the event is the <code>EventTarget</code> object on which <code>dispatchEvent</code> is called.
@@ -1479,8 +1449,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-EventTarget-removeEventListener"
- id="events-Events-EventTarget-removeEventListener">removeEventListener</a>
+ <a name="events-Events-EventTarget-removeEventListener" id="events-Events-EventTarget-removeEventListener">removeEventListener</a>
</code>
</dt>
<dd>
@@ -1509,8 +1478,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-EventTargetGroup-removeEventListenerNS"
- id="events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a>
+ <a name="events-Events-EventTargetGroup-removeEventListenerNS" id="events-Events-EventTargetGroup-removeEventListenerNS">removeEventListenerNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Removes an event listener. Calling <code>removeEventListenerNS</code> with arguments which do not identify any currently registered <a href="#events-Events-EventListener"><code>EventListener</code></a> on the <code>EventTarget</code> has no effect.
@@ -1572,8 +1540,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-EventListener-handleEvent"
- id="events-Events-EventListener-handleEvent">handleEvent</a>
+ <a name="events-Events-EventListener-handleEvent" id="events-Events-EventListener-handleEvent">handleEvent</a>
</code>
</dt>
<dd>
@@ -1628,8 +1595,7 @@
</dd>
<dt>
<strong>Definition group <em>
- <a name="events-Events-EventException-EventExceptionCode"
- id="events-Events-EventException-EventExceptionCode">EventExceptionCode</a>
+ <a name="events-Events-EventException-EventExceptionCode" id="events-Events-EventException-EventExceptionCode">EventExceptionCode</a>
</em></strong>
</dt>
<dd>
@@ -1643,8 +1609,7 @@
<dt><a name="events-DISPATCH_REQUEST_ERR" id="events-DISPATCH_REQUEST_ERR"><code class="constant-name">DISPATCH_REQUEST_ERR</code></a>, introduced in <strong class="version">DOM Level 3</strong>.</dt>
<dd>If the <a href="#events-Events-Event"><code>Event</code></a> object is already dispatched in the tree.</dd>
<dt>
- <a name="events-UNSPECIFIED_EVENT_TYPE_ERR"
- id="events-UNSPECIFIED_EVENT_TYPE_ERR"><code class="constant-name">UNSPECIFIED_EVENT_TYPE_ERR</code></a>
+ <a name="events-UNSPECIFIED_EVENT_TYPE_ERR" id="events-UNSPECIFIED_EVENT_TYPE_ERR"><code class="constant-name">UNSPECIFIED_EVENT_TYPE_ERR</code></a>
</dt>
<dd>If the <a href="#events-Events-Event-type"><code>Event.type</code></a> was not specified by initializing the event before the method was called. Specification of the <a class="noxref" href="#events-Events-Event-type"><code>Event.type</code></a> as <code>null</code> or an empty string will also trigger this exception.</dd>
</dl>
@@ -1655,8 +1620,7 @@
</dd>
</dl>
<div class="div3">
- <a name="events-Events-document" id="events-Events-document"> </a>
- <h3 id="events-Events-document-h3" class="div3">1.6.1 Event creation</h3>
+ <h3 id="events-Events-document" class="div3">1.6.1 Event creation</h3>
<p>In most cases, the events dispatched by the DOM Events implementation are also created by the implementation. It is however possible to simulate events such as mouse events by creating the <a href="#events-Events-Event"><code>Event</code></a> objects and dispatch them using the DOM Events implementation.</p>
<p>Creating <a href="#events-Events-Event"><code>Event</code></a> objects that are known to the DOM Events implementation is done using <a href="#events-Events-DocumentEvent-createEvent"><code>DocumentEvent.createEvent()</code></a>. The application must then initialize the object by calling the appropriate initialization method before invoking <a href="#events-Events-EventTarget-dispatchEvent"><code>EventTarget.dispatchEvent()</code></a>. The <a class="noxref" href="#events-Events-Event"><code>Event</code></a> objects created must be known by the DOM Events implementation; otherwise an event exception is thrown.</p>
<dl>
@@ -1691,8 +1655,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-DocumentEvent-canDispatch"
- id="events-Events-DocumentEvent-canDispatch">canDispatch</a>
+ <a name="events-Events-DocumentEvent-canDispatch" id="events-Events-DocumentEvent-canDispatch">canDispatch</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Tests if the implementation can generate events of a specified type.
@@ -1734,8 +1697,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-DocumentEvent-createEvent"
- id="events-Events-DocumentEvent-createEvent">createEvent</a>
+ <a name="events-Events-DocumentEvent-createEvent" id="events-Events-DocumentEvent-createEvent">createEvent</a>
</code>
</dt>
<dd>
@@ -1805,12 +1767,10 @@
</div>
<!-- div2 Events-interface -->
<div class="div2">
- <a name="events-Events-eventgroupings" id="events-Events-eventgroupings"> </a>
- <h2 id="events-Events-eventgroupings-h2" class="div2">1.7 Event module definitions</h2>
+ <h2 id="events-Events-eventgroupings" class="div2">1.7 Event module definitions</h2>
<p>The DOM Event Model allows a DOM implementation to support multiple modules of events. The model has been designed to allow addition of new event modules if required. The DOM will not attempt to define all possible events. For purposes of interoperability, the DOM defines a module of user interface events including lower level device dependent events and a module of document mutation events.</p>
<div class="div3">
- <a name="events-Events-eventgroupings-uievents" id="events-Events-eventgroupings-uievents"> </a>
- <h3 id="events-Events-eventgroupings-uievents-h3" class="div3">1.7.1 User Interface event types</h3>
+ <h3 id="events-Events-eventgroupings-uievents" class="div3">1.7.1 User Interface event types</h3>
<p>This module defines the feature UIEvents 3.0 and depends on the features Events 3.0 and Views 2.0.</p>
<p>The User Interface event module contains basic event types associated with user interfaces.</p>
<dl>
@@ -1870,8 +1830,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initUIEvent"
- id="events-Events-Event-initUIEvent">initUIEvent</a>
+ <a name="events-Events-Event-initUIEvent" id="events-Events-Event-initUIEvent">initUIEvent</a>
</code>
</dt>
<dd>
@@ -1904,8 +1863,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initUIEventNS"
- id="events-Events-Event-initUIEventNS">initUIEventNS</a>
+ <a name="events-Events-Event-initUIEventNS" id="events-Events-Event-initUIEventNS">initUIEventNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Initializes attributes of an <code>UIEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.
@@ -1946,8 +1904,7 @@
<p>The User Interface event types are listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMActivate" id="events-event-DOMActivate"> </a>
+ <dt id="events-event-DOMActivate">
<a class="noxref" href="#events-event-DOMActivate">DOMActivate</a>
</dt>
<dd>
@@ -1988,8 +1945,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMFocusIn" id="events-event-DOMFocusIn"> </a>
+ <dt id="events-event-DOMFocusIn">
<a class="noxref" href="#events-event-DOMFocusIn">DOMFocusIn</a>
</dt>
<dd>
@@ -2030,8 +1986,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMFocusOut" id="events-event-DOMFocusOut"> </a>
+ <dt id="events-event-DOMFocusOut">
<a class="noxref" href="#events-event-DOMFocusOut">DOMFocusOut</a>
</dt>
<dd>
@@ -2072,8 +2027,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-focus" id="events-event-focus"> </a>
+ <dt id="events-event-focus">
<a class="noxref" href="#events-event-focus">focus</a>
</dt>
<dd>
@@ -2114,8 +2068,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-blur" id="events-event-blur"> </a>
+ <dt id="events-event-blur">
<a class="noxref" href="#events-event-blur">blur</a>
</dt>
<dd>
@@ -2156,9 +2109,8 @@
</div>
</div>
<!-- div3 Events-eventgroupings-uievents -->
- <div class="div3">
- <a name="events-Events-TextEvents-Interfaces" id="events-Events-TextEvents-Interfaces"> </a>
- <h3 id="events-Events-TextEvents-Interfaces-h3" class="div3">1.7.2 Text events types</h3>
+ <div class="div3" id="events-Events-TextEvents-Interfaces">
+ <h3 class="div3">1.7.2 Text events types</h3>
<p>This module defines the feature TextEvents 3.0 and depends on the feature UIEvents 3.0.</p>
<p>The text event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onkeypress</code> attribute. Unlike this attribute, the event type <a href="#events-event-textInput">textInput</a> applies only to characters and is designed for use with any text input devices, not just keyboards. Refer to Appendix A, "<a href="#keyset-KeySet">Keyboard events and key identifiers</a>", for examples on how text events are used in combination with keyboard events.</p>
<dl>
@@ -2212,8 +2164,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initTextEvent"
- id="events-Events-Event-initTextEvent">initTextEvent</a>
+ <a name="events-Events-Event-initTextEvent" id="events-Events-Event-initTextEvent">initTextEvent</a>
</code>
</dt>
<dd>
@@ -2246,8 +2197,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initTextEventNS"
- id="events-Events-Event-initTextEventNS">initTextEventNS</a>
+ <a name="events-Events-Event-initTextEventNS" id="events-Events-Event-initTextEventNS">initTextEventNS</a>
</code>
</dt>
<dd>
@@ -2289,8 +2239,7 @@
<p>The text event type is listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-textInput" id="events-event-textInput"> </a>
+ <dt id="events-event-textInput">
<a class="noxref" href="#events-event-textInput">textInput</a>
</dt>
<dd>
@@ -2332,9 +2281,7 @@
</div>
<!-- div3 Events-TextEvents-Interfaces -->
<div class="div3">
- <a name="events-Events-KeyboardEvents-Interfaces"
- id="events-Events-KeyboardEvents-Interfaces"/>
- <h3 id="events-Events-KeyboardEvents-Interfaces-h3" class="div3">1.7.3 Keyboard event types</h3>
+ <h3 id="events-Events-KeyboardEvents-Interfaces" class="div3">1.7.3 Keyboard event types</h3>
<p>(This part of the specification is likely to be moved to a separate specification on keyboard events.)</p>
<p>This module defines the feature KeyboardEvents 3.0 and depends on the feature UIEvents 3.0.</p>
<p>Keyboard events are device dependent, i.e. they rely on the capabilities of the input devices and how they are mapped in the operating systems. It is therefore highly recommended to rely on <a href="#events-Events-TextEvent">Text events types</a> when dealing with character input.</p>
@@ -2392,8 +2339,7 @@
</dd>
<dt>
<strong>Definition group <em>
- <a name="events-ID-KeyboardEvent-KeyLocationCode"
- id="events-ID-KeyboardEvent-KeyLocationCode">KeyLocationCode</a>
+ <a name="events-ID-KeyboardEvent-KeyLocationCode" id="events-ID-KeyboardEvent-KeyLocationCode">KeyLocationCode</a>
</em></strong>
</dt>
<dd>
@@ -2409,8 +2355,7 @@
</dt>
<dd>The key activated is in the left key location (there is more than one possible location for this key). Example: the left Shift key on a PC 101 Key US keyboard.</dd>
<dt>
- <a name="events-DOM_KEY_LOCATION_NUMPAD"
- id="events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>
+ <a name="events-DOM_KEY_LOCATION_NUMPAD" id="events-DOM_KEY_LOCATION_NUMPAD"><code class="constant-name">DOM_KEY_LOCATION_NUMPAD</code></a>
</dt>
<dd>The key activation originated on the numeric keypad or with a virtual key corresponding to the numeric keypad. Example: the '1' key on a PC 101 Key US keyboard located on the numeric pad.</dd>
<dt>
@@ -2418,8 +2363,7 @@
</dt>
<dd>The key activation is in the right key location (there is more than one possible location for this key). Example: the right Shift key on a PC 101 Key US keyboard.</dd>
<dt>
- <a name="events-DOM_KEY_LOCATION_STANDARD"
- id="events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a>
+ <a name="events-DOM_KEY_LOCATION_STANDARD" id="events-DOM_KEY_LOCATION_STANDARD"><code class="constant-name">DOM_KEY_LOCATION_STANDARD</code></a>
</dt>
<dd>The key activation is not distinguished as the left or right version of the key, and did not originate from the numeric keypad (or did not originate with a virtual key corresponding to the numeric keypad). Example: the 'Q' key on a PC 101 Key US keyboard.</dd>
</dl>
@@ -2432,37 +2376,31 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-altKey"
- id="events-Events-KeyboardEvent-altKey">altKey</a>
+ <a name="events-Events-KeyboardEvent-altKey" id="events-Events-KeyboardEvent-altKey">altKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd><code>true</code> if the alternative (Alt) key modifier is activated.
<p><strong>Note:</strong> The Option key modifier on Macintosh systems must be represented using this key modifier.</p>
</dd>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-ctrlKey"
- id="events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>
+ <a name="events-Events-KeyboardEvent-ctrlKey" id="events-Events-KeyboardEvent-ctrlKey">ctrlKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd><code>true</code> if the control (Ctrl) key modifier is activated.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-keyIdentifier"
- id="events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a>
+ <a name="events-Events-KeyboardEvent-keyIdentifier" id="events-Events-KeyboardEvent-keyIdentifier">keyIdentifier</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd><code>keyIdentifier</code> holds the identifier of the key. The key identifiers are defined in Appendix A.2 "<a href="#keyset-KeySet-Set">Key identifiers set</a>". Implementations that are unable to identify a key must use the key identifier <code>"Unidentified"</code>.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-keylocation"
- id="events-Events-KeyboardEvent-keylocation">keyLocation</a>
+ <a name="events-Events-KeyboardEvent-keylocation" id="events-Events-KeyboardEvent-keylocation">keyLocation</a>
</code> of type <code>unsigned long</code>, readonly</dt>
- <dd>The <code>keyLocation</code> attribute contains an indication of the location of they key on the device, as described in <a href="#events-ID-KeyboardEvent-KeyLocationCode">Keyboard event types</a>.<br/></dd>
+ <dd>The <code>keyLocation</code> attribute contains an indication of the location of the key on the device, as described in <a href="#events-ID-KeyboardEvent-KeyLocationCode">Keyboard event types</a>.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-metaKey"
- id="events-Events-KeyboardEvent-metaKey">metaKey</a>
+ <a name="events-Events-KeyboardEvent-metaKey" id="events-Events-KeyboardEvent-metaKey">metaKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd><code>true</code> if the meta (Meta) key modifier is activated.
<p><strong>Note:</strong> The Command key modifier on Macintosh systems must be represented using this key modifier.</p>
</dd>
<dt><code class="attribute-name">
- <a name="events-Events-KeyboardEvent-shiftKey"
- id="events-Events-KeyboardEvent-shiftKey">shiftKey</a>
+ <a name="events-Events-KeyboardEvent-shiftKey" id="events-Events-KeyboardEvent-shiftKey">shiftKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd><code>true</code> if the shift (Shift) key modifier is activated.<br/></dd>
</dl>
@@ -2473,8 +2411,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-KeyboardEvent-getModifierState"
- id="events-Events-KeyboardEvent-getModifierState">getModifierState</a>
+ <a name="events-Events-KeyboardEvent-getModifierState" id="events-Events-KeyboardEvent-getModifierState">getModifierState</a>
</code>
</dt>
<dd>
@@ -2517,8 +2454,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-KeyboardEvent-initKeyboardEvent"
- id="events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>
+ <a name="events-Events-KeyboardEvent-initKeyboardEvent" id="events-Events-KeyboardEvent-initKeyboardEvent">initKeyboardEvent</a>
</code>
</dt>
<dd>
@@ -2557,8 +2493,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-KeyboardEvent-initKeyboardEventNS"
- id="events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>
+ <a name="events-Events-KeyboardEvent-initKeyboardEventNS" id="events-Events-KeyboardEvent-initKeyboardEventNS">initKeyboardEventNS</a>
</code>
</dt>
<dd>
@@ -2605,8 +2540,7 @@
<p>The keyboard event types are listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-keydown" id="events-event-keydown"> </a>
+ <dt id="events-event-keydown">
<a class="noxref" href="#events-event-keydown">keydown</a>
</dt>
<dd>
@@ -2647,8 +2581,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-keyup" id="events-event-keyup"> </a>
+ <dt id="events-event-keyup">
<a class="noxref" href="#events-event-keyup">keyup</a>
</dt>
<dd>
@@ -2690,9 +2623,7 @@
</div>
<!-- div3 Events-KeyboardEvents-Interfaces -->
<div class="div3">
- <a name="events-Events-eventgroupings-mouseevents"
- id="events-Events-eventgroupings-mouseevents"/>
- <h3 id="events-Events-eventgroupings-mouseevents-h3" class="div3">1.7.4 Mouse event types</h3>
+ <h3 id="events-Events-eventgroupings-mouseevents" class="div3">1.7.4 Mouse event types</h3>
<p>This module defines the feature MouseEvents 3.0 and depends on the feature UIEvents 3.0.</p>
<p>The Mouse event module originates from the [<cite><a class="noxref informative" href="#references-HTML40">HTML 4.01</a></cite>] <code>onclick</code>, <code>ondblclick</code>, <code>onmousedown</code>, <code>onmouseup</code>, <code>onmouseover</code>, <code>onmousemove</code>, and <code>onmouseout</code> attributes. This event module is specifically designed for use with pointing input devices, such as a mouse or a trackball.</p>
<dl>
@@ -2766,53 +2697,43 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-altKey"
- id="events-Events-MouseEvent-altKey">altKey</a>
+ <a name="events-Events-MouseEvent-altKey" id="events-Events-MouseEvent-altKey">altKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd>Refer to the <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a> attribute.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-button"
- id="events-Events-MouseEvent-button">button</a>
+ <a name="events-Events-MouseEvent-button" id="events-Events-MouseEvent-button">button</a>
</code> of type <code>unsigned short</code>, readonly</dt>
<dd>During mouse events caused by the depression or release of a mouse button, <code>button</code> is used to indicate which mouse button changed state. <code>0</code> indicates the normal button of the mouse (in general on the left or the one button on Macintosh mice, used to activate a button or select text). <code>2</code> indicates the contextual property (in general on the right, used to display a context menu) button of the mouse if present. <code>1</code> indicates the extra (in general in the middle and often combined with the mouse wheel) button. Some mice may provide or simulate more buttons, and values higher than <code>2</code> can be used to represent such buttons.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-clientX"
- id="events-Events-MouseEvent-clientX">clientX</a>
+ <a name="events-Events-MouseEvent-clientX" id="events-Events-MouseEvent-clientX">clientX</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The horizontal coordinate at which the event occurred relative to the viewport associated with the event.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-clientY"
- id="events-Events-MouseEvent-clientY">clientY</a>
+ <a name="events-Events-MouseEvent-clientY" id="events-Events-MouseEvent-clientY">clientY</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The vertical coordinate at which the event occurred relative to the viewport associated with the event.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-ctrlKey"
- id="events-Events-MouseEvent-ctrlKey">ctrlKey</a>
+ <a name="events-Events-MouseEvent-ctrlKey" id="events-Events-MouseEvent-ctrlKey">ctrlKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd>Refer to the <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a> attribute.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-metaKey"
- id="events-Events-MouseEvent-metaKey">metaKey</a>
+ <a name="events-Events-MouseEvent-metaKey" id="events-Events-MouseEvent-metaKey">metaKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd>Refer to the <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a> attribute.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-relatedTarget"
- id="events-Events-MouseEvent-relatedTarget">relatedTarget</a>
+ <a name="events-Events-MouseEvent-relatedTarget" id="events-Events-MouseEvent-relatedTarget">relatedTarget</a>
</code> of type <a href="#events-Events-EventTarget"><code>EventTarget</code></a>, readonly</dt>
<dd>Used to identify a secondary <a href="#events-Events-EventTarget"><code>EventTarget</code></a> related to a UI event, depending on the type of event.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-screenX"
- id="events-Events-MouseEvent-screenX">screenX</a>
+ <a name="events-Events-MouseEvent-screenX" id="events-Events-MouseEvent-screenX">screenX</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The horizontal coordinate at which the event occurred relative to the origin of the screen coordinate system.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-screenY"
- id="events-Events-MouseEvent-screenY">screenY</a>
+ <a name="events-Events-MouseEvent-screenY" id="events-Events-MouseEvent-screenY">screenY</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The vertical coordinate at which the event occurred relative to the origin of the screen coordinate system.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MouseEvent-shiftKey"
- id="events-Events-MouseEvent-shiftKey">shiftKey</a>
+ <a name="events-Events-MouseEvent-shiftKey" id="events-Events-MouseEvent-shiftKey">shiftKey</a>
</code> of type <code>boolean</code>, readonly</dt>
<dd>Refer to the <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a> attribute.<br/></dd>
</dl>
@@ -2823,8 +2744,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-MouseEvent-getModifierState"
- id="events-Events-MouseEvent-getModifierState">getModifierState</a>
+ <a name="events-Events-MouseEvent-getModifierState" id="events-Events-MouseEvent-getModifierState">getModifierState</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Queries the state of a modifier using a key identifier. See also <a href="#keyset-Modifiers">Modifier keys</a>.
@@ -2864,8 +2784,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initMouseEvent"
- id="events-Events-Event-initMouseEvent">initMouseEvent</a>
+ <a name="events-Events-Event-initMouseEvent" id="events-Events-Event-initMouseEvent">initMouseEvent</a>
</code>
</dt>
<dd>
@@ -2918,8 +2837,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initMouseEventNS"
- id="events-Events-Event-initMouseEventNS">initMouseEventNS</a>
+ <a name="events-Events-Event-initMouseEventNS" id="events-Events-Event-initMouseEventNS">initMouseEventNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Initializes attributes of a <code>MouseEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initUIEventNS"><code>UIEvent.initUIEventNS()</code></a>.
@@ -2972,11 +2890,10 @@
</dd>
</dl>
<p>The Mouse event types are listed below. In the case of nested elements, mouse event types are always targeted at the most deeply nested element. Ancestors of the targeted element may use bubbling to obtain notification of mouse events which occur within its descendent elements.</p>
- <p><a name="events-dt-current-click-count" id="events-dt-current-click-count"/> Implementations must maintain the <em>current click count</em> when generating mouse events. This is a non-negative integer indicating the number of consecutive clicks of a pointing device button during a user action. The notion of consecutive clicks depends on the environment configuration. For example, a "double click" might not happen if there is a long delay between the two clicks.</p>
+ <p id="events-dt-current-click-count">Implementations must maintain the <em>current click count</em> when generating mouse events. This is a non-negative integer indicating the number of consecutive clicks of a pointing device button during a user action. The notion of consecutive clicks depends on the environment configuration. For example, a "double click" might not happen if there is a long delay between the two clicks.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-click" id="events-event-click"> </a>
+ <dt id="events-event-click">
<a class="noxref" href="#events-event-click">click</a>
</dt>
<dd>
@@ -3017,8 +2934,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-dblclick" id="events-event-dblclick"> </a>
+ <dt id="events-event-dblclick">
<a class="noxref" href="#events-event-dblclick">dblclick</a>
</dt>
<dd>
@@ -3059,8 +2975,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mousedown" id="events-event-mousedown"> </a>
+ <dt id="events-event-mousedown">
<a class="noxref" href="#events-event-mousedown">mousedown</a>
</dt>
<dd>
@@ -3101,8 +3016,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mouseup" id="events-event-mouseup"> </a>
+ <dt id="events-event-mouseup">
<a class="noxref" href="#events-event-mouseup">mouseup</a>
</dt>
<dd>
@@ -3143,8 +3057,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mouseover" id="events-event-mouseover"> </a>
+ <dt id="events-event-mouseover">
<a class="noxref" href="#events-event-mouseover">mouseover</a>
</dt>
<dd>
@@ -3185,8 +3098,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mousemove" id="events-event-mousemove"> </a>
+ <dt id="events-event-mousemove">
<a class="noxref" href="#events-event-mousemove">mousemove</a>
</dt>
<dd>
@@ -3227,8 +3139,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mouseout" id="events-event-mouseout"> </a>
+ <dt id="events-event-mouseout">
<a class="noxref" href="#events-event-mouseout">mouseout</a>
</dt>
<dd>
@@ -3271,9 +3182,7 @@
<!-- div3 Events-eventgroupings-wheelevents -->
<div class="div3">
- <a name="events-Events-eventgroupings-mousewheelevents"
- id="events-Events-eventgroupings-mousewheelevents"/>
- <h3 id="events-Events-eventgroupings-mousewheelevents-h3" class="div3">1.7.5 Mouse wheel event types</h3>
+ <h3 id="events-Events-eventgroupings-mousewheelevents" class="div3">1.7.5 Mouse wheel event types</h3>
<p>This module defines the feature MouseWheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
<p>Mouse wheel events are included for specification of legacy support, but are deprecated. Authors are encouraged to use <a href="#events-Events-eventgroupings-wheelevents">Wheel event types</a> instead.</p>
<!--
@@ -3297,6 +3206,19 @@
// Introduced in DOM Level 3:
interface <a class="noxref" href="#events-Events-MouseWheelEvent">MouseWheelEvent</a> : <a class="noxref" href="#events-Events-MouseEvent">MouseEvent</a> {
readonly attribute long <a class="noxref" href="#events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>;
+ void <a class="noxref" href="#events-Events-Event-initMouseWheelEvent">initMouseWheelEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long wheelDeltaArg);
void <a class="noxref" href="#events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
@@ -3322,8 +3244,7 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-MouseWheelEvent-wheelDelta"
- id="events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>
+ <a name="events-Events-MouseWheelEvent-wheelDelta" id="events-Events-MouseWheelEvent-wheelDelta">wheelDelta</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The distance the wheel has rotated around the y-axis.<br/></dd>
</dl>
@@ -3334,8 +3255,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initMouseWheelEventNS"
- id="events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>
+ <a name="events-Events-Event-initMouseWheelEventNS" id="events-Events-Event-initMouseWheelEventNS">initMouseWheelEventNS</a>
</code>
</dt>
<dd>
@@ -3392,8 +3312,7 @@
</dl>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-mousewheel" id="events-event-mousewheel"> </a>
+ <dt id="events-event-mousewheel">
<a class="noxref" href="#events-event-mousewheel">mousewheel</a>
</dt>
<dd>
@@ -3439,9 +3358,7 @@
<!-- div3 Events-eventgroupings-mouseevents -->
<div class="div3">
- <a name="events-Events-eventgroupings-wheelevents"
- id="events-Events-eventgroupings-wheelevents"/>
- <h3 id="events-Events-eventgroupings-wheelevents-h3" class="div3">1.7.6 Wheel event types</h3>
+ <h3 id="events-Events-eventgroupings-wheelevents" class="div3">1.7.6 Wheel event types</h3>
<p>This module defines the feature WheelEvents 3.0 and depends on the feature MouseEvents 3.0.</p>
<p>Wheels are devices that can be rotated in one or more spatial dimensions, and which may or may not be associated with a pointer device. The coordinate system depends on the environment configuration. As an example, the environment may be configured to associate vertical scrolling with rotation along the y-axis, horizontal scrolling with rotation along the x-axis, and zooming with rotation along the z-axis. The deltax, deltaY, and deltaX attributes of <a href="#events-Events-WheelEvent"><code>WheelEvent</code></a> objects indicate the distance of the rotation, as specified in the <a class="def-term" href="events-Events-WheelEvent-delta">delta</a> definition. <!--The delta attributes of <a href='#events-Events-WheelEvent'><code>WheelEvent</code></a> objects indicate the distance of the rotation. The measurement unit depends on the environment configuration. The sign of the delta value should indicate the direction of the rotation.--></p>
@@ -3484,6 +3401,21 @@
readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaX">deltaX</a>;
readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaY">deltaY</a>;
readonly attribute long <a class="noxref" href="#events-Events-WheelEvent-deltaZ">deltaZ</a>;
+ void <a class="noxref" href="#events-Events-Event-initWheelEvent">initWheelEvent</a>(in DOMString typeArg,
+ in boolean canBubbleArg,
+ in boolean cancelableArg,
+ in views::AbstractView viewArg,
+ in long detailArg,
+ in long screenXArg,
+ in long screenYArg,
+ in long clientXArg,
+ in long clientYArg,
+ in unsigned short buttonArg,
+ in <a class="noxref" href="#events-Events-EventTarget">EventTarget</a> relatedTargetArg,
+ in DOMString modifiersListArg,
+ in long deltaXArg,
+ in long deltaYArg,
+ in long deltaZArg);
void <a class="noxref" href="#events-Events-Event-initWheelEventNS">initWheelEventNS</a>(in DOMString namespaceURIArg,
in DOMString typeArg,
in boolean canBubbleArg,
@@ -3511,18 +3443,15 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-WheelEvent-deltaX"
- id="events-Events-WheelEvent-deltaX">deltaX</a>
+ <a name="events-Events-WheelEvent-deltaX" id="events-Events-WheelEvent-deltaX">deltaX</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The distance the wheel has rotated around the x-axis.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-WheelEvent-deltaY"
- id="events-Events-WheelEvent-deltaY">deltaY</a>
+ <a name="events-Events-WheelEvent-deltaY" id="events-Events-WheelEvent-deltaY">deltaY</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The distance the wheel has rotated around the y-axis.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-WheelEvent-deltaZ"
- id="events-Events-WheelEvent-deltaZ">deltaZ</a>
+ <a name="events-Events-WheelEvent-deltaZ" id="events-Events-WheelEvent-deltaZ">deltaZ</a>
</code> of type <code>long</code>, readonly</dt>
<dd>The distance the wheel has rotated around the z-axis.<br/></dd>
</dl>
@@ -3533,8 +3462,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initWheelEventNS"
- id="events-Events-Event-initWheelEventNS">initWheelEventNS</a>
+ <a name="events-Events-Event-initWheelEventNS" id="events-Events-Event-initWheelEventNS">initWheelEventNS</a>
</code>
</dt>
<dd>
@@ -3595,8 +3523,7 @@
</dl>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-wheel" id="events-event-wheel"> </a>
+ <dt id="events-event-wheel">
<a class="noxref" href="#events-event-wheel">wheel</a>
</dt>
<dd>
@@ -3640,11 +3567,11 @@
<div class="div3">
- <a name="events-Events-eventgroupings-mutationevents"
- id="events-Events-eventgroupings-mutationevents"/>
- <h3 id="events-Events-eventgroupings-mutationevents-h3" class="div3">1.7.7 Mutation event types</h3>
+ <h3 id="events-Events-eventgroupings-mutationevents" class="div3">1.7.7 Mutation event types</h3>
<p>This module defines the feature MutationEvents 3.0 and depends on the feature Events 3.0.</p>
<p>The mutation and mutation name event modules are designed to allow notification of any changes to the structure of a document, including attribute, text, or name modifications. It may be noted that none of the event types associated with the modules are designated as cancelable. This stems from the fact that it is very difficult to make use of existing DOM interfaces which cause document modifications if any change to the document might or might not take place due to cancelation of the resulting event. Although this is still a desired capability, it was decided that it would be better left until the addition of transactions into the DOM.</p>
+ <p class="issue">Note that nodes that are not in the document, such as elements freshly created, or elements removed from the DOM, shall not fire mutation events when changes. For example, if an element is created but not yet inserted into the document, then an existing element located in the document is moved from its current location to be a child of the new element, there will be one mutation event, for removing the existing element from its previous location, but no event will fire for insertion of the element into the new element, regardless of any assigned mutation event listeners.</p>
+ <p class="issue">?What happens to event listeners on an element when it is removed from the tree, or moved elsewhere in the tree?</p>
<p>Many single modifications of the tree can cause multiple mutation events to be dispatched. Rather than attempt to specify the ordering of mutation events due to every possible modification of the tree, the ordering of these events is left to the implementation.</p>
<dl>
<dt><strong>Interface <em>
@@ -3699,8 +3626,7 @@
</dd>
<dt>
<strong>Definition group <em>
- <a name="events-Events-MutationEvent-attrChangeType"
- id="events-Events-MutationEvent-attrChangeType">attrChangeType</a>
+ <a name="events-Events-MutationEvent-attrChangeType" id="events-Events-MutationEvent-attrChangeType">attrChangeType</a>
</em></strong>
</dt>
<dd>
@@ -3733,28 +3659,23 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-MutationEvent-attrChange"
- id="events-Events-MutationEvent-attrChange">attrChange</a>
+ <a name="events-Events-MutationEvent-attrChange" id="events-Events-MutationEvent-attrChange">attrChange</a>
</code> of type <code>unsigned short</code>, readonly</dt>
<dd><code>attrChange</code> indicates the type of change which triggered the <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event. The values can be <code>MODIFICATION</code>, <code>ADDITION</code>, or <code>REMOVAL</code>.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MutationEvent-attrName"
- id="events-Events-MutationEvent-attrName">attrName</a>
+ <a name="events-Events-MutationEvent-attrName" id="events-Events-MutationEvent-attrName">attrName</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd><code>attrName</code> indicates the name of the changed <code>Attr</code> node in a <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MutationEvent-newValue"
- id="events-Events-MutationEvent-newValue">newValue</a>
+ <a name="events-Events-MutationEvent-newValue" id="events-Events-MutationEvent-newValue">newValue</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd><code>newValue</code> indicates the new value of the <code>Attr</code> node in <a href="#events-event-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MutationEvent-prevValue"
- id="events-Events-MutationEvent-prevValue">prevValue</a>
+ <a name="events-Events-MutationEvent-prevValue" id="events-Events-MutationEvent-prevValue">prevValue</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd><code>prevValue</code> indicates the previous value of the <code>Attr</code> node in <a href="#events-event-DOMAttrModified">DOMAttrModified</a> events, and of the <code>CharacterData</code> node in <a href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a> events.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MutationEvent-relatedNode"
- id="events-Events-MutationEvent-relatedNode">relatedNode</a>
+ <a name="events-Events-MutationEvent-relatedNode" id="events-Events-MutationEvent-relatedNode">relatedNode</a>
</code> of type <code>Node</code>, readonly</dt>
<dd><code>relatedNode</code> is used to identify a secondary node related to a mutation event. For example, if a mutation event is dispatched to a node indicating that its parent has changed, the <code>relatedNode</code> is the changed parent. If an event is instead dispatched to a subtree indicating a node was changed within it, the <code>relatedNode</code> is the changed node. In the case of the <a href="#events-event-DOMAttrModified">DOMAttrModified</a> event it indicates the <code>Attr</code> node which was modified, added, or removed.<br/></dd>
</dl>
@@ -3765,8 +3686,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initMutationEvent"
- id="events-Events-Event-initMutationEvent">initMutationEvent</a>
+ <a name="events-Events-Event-initMutationEvent" id="events-Events-Event-initMutationEvent">initMutationEvent</a>
</code>
</dt>
<dd>
@@ -3805,8 +3725,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initMutationEventNS"
- id="events-Events-Event-initMutationEventNS">initMutationEventNS</a>
+ <a name="events-Events-Event-initMutationEventNS" id="events-Events-Event-initMutationEventNS">initMutationEventNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Initializes attributes of a <code>MutationEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.
@@ -3853,8 +3772,7 @@
<p>The mutation event types are listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMSubtreeModified" id="events-event-DOMSubtreeModified"> </a>
+ <dt id="events-event-DOMSubtreeModified">
<a class="noxref" href="#events-event-DOMSubtreeModified">DOMSubtreeModified</a>
</dt>
<dd>
@@ -3895,8 +3813,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMNodeInserted" id="events-event-DOMNodeInserted"> </a>
+ <dt id="events-event-DOMNodeInserted">
<a class="noxref" href="#events-event-DOMNodeInserted">DOMNodeInserted</a>
</dt>
<dd>
@@ -3937,8 +3854,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMNodeRemoved" id="events-event-DOMNodeRemoved"> </a>
+ <dt id="events-event-DOMNodeRemoved">
<a class="noxref" href="#events-event-DOMNodeRemoved">DOMNodeRemoved</a>
</dt>
<dd>
@@ -3979,9 +3895,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMNodeRemovedFromDocument"
- id="events-event-DOMNodeRemovedFromDocument"/>
+ <dt id="events-event-DOMNodeRemovedFromDocument">
<a class="noxref" href="#events-event-DOMNodeRemovedFromDocument">DOMNodeRemovedFromDocument</a>
</dt>
<dd>
@@ -4022,9 +3936,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMNodeInsertedIntoDocument"
- id="events-event-DOMNodeInsertedIntoDocument"/>
+ <dt id="events-event-DOMNodeInsertedIntoDocument">
<a class="noxref" href="#events-event-DOMNodeInsertedIntoDocument">DOMNodeInsertedIntoDocument</a>
</dt>
<dd>
@@ -4065,8 +3977,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMAttrModified" id="events-event-DOMAttrModified"> </a>
+ <dt id="events-event-DOMAttrModified">
<a class="noxref" href="#events-event-DOMAttrModified">DOMAttrModified</a>
</dt>
<dd>
@@ -4107,9 +4018,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMCharacterDataModified"
- id="events-event-DOMCharacterDataModified"/>
+ <dt id="events-event-DOMCharacterDataModified">
<a class="noxref" href="#events-event-DOMCharacterDataModified">DOMCharacterDataModified</a>
</dt>
<dd>
@@ -4150,10 +4059,8 @@
</div>
</div>
<!-- div3 Events-eventgroupings-mutationevents -->
- <div class="div3">
- <a name="events-Events-eventgroupings-mutationnameevents"
- id="events-Events-eventgroupings-mutationnameevents"/>
- <h3 id="events-Events-eventgroupings-mutationnameevents-h3" class="div3">1.7.8 Mutation name event types</h3>
+ <div class="div3" id="events-Events-eventgroupings-mutationnameevents">
+ <h3 class="div3">1.7.8 Mutation name event types</h3>
<p>This module defines the feature MutationNameEvents 3.0 and depends on the features MutationEvents 3.0 and Core 3.0.</p>
<dl>
<dt><strong>Interface <em>
@@ -4200,13 +4107,11 @@
<dd>
<dl>
<dt><code class="attribute-name">
- <a name="events-Events-MutationNameEvent-prevNamespaceURI"
- id="events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>
+ <a name="events-Events-MutationNameEvent-prevNamespaceURI" id="events-Events-MutationNameEvent-prevNamespaceURI">prevNamespaceURI</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd>The previous value of the <code>relatedNode</code>'s <code>namespaceURI</code>.<br/></dd>
<dt><code class="attribute-name">
- <a name="events-Events-MutationNameEvent-prevNodeName"
- id="events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>
+ <a name="events-Events-MutationNameEvent-prevNodeName" id="events-Events-MutationNameEvent-prevNodeName">prevNodeName</a>
</code> of type <code>DOMString</code>, readonly</dt>
<dd>The previous value of the <code>relatedNode</code>'s <code>nodeName</code>.<br/></dd>
</dl>
@@ -4217,8 +4122,7 @@
<dd>
<dl>
<dt><code class="method-name">
- <a name="events-Events-Event-initMutationNameEvent"
- id="events-Events-Event-initMutationNameEvent">initMutationNameEvent</a>
+ <a name="events-Events-Event-initMutationNameEvent" id="events-Events-Event-initMutationNameEvent">initMutationNameEvent</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMutationEvent"><code>MutationEvent.initMutationEvent()</code></a>.
@@ -4252,8 +4156,7 @@
<!-- method -->
</dd>
<dt><code class="method-name">
- <a name="events-Events-Event-initMutationNameEventNS"
- id="events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a>
+ <a name="events-Events-Event-initMutationNameEventNS" id="events-Events-Event-initMutationNameEventNS">initMutationNameEventNS</a>
</code> introduced in <strong class="since">DOM Level 3</strong></dt>
<dd>
<div class="method">Initializes attributes of a <code>MutationNameEvent</code> object. This method has the same behavior as <a href="#events-Events-Event-initMutationEventNS"><code>MutationEvent.initMutationEventNS()</code></a>.
@@ -4296,8 +4199,7 @@
<p>The mutation name event types are listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMElementNameChanged" id="events-event-DOMElementNameChanged"> </a>
+ <dt id="events-event-DOMElementNameChanged">
<a class="noxref" href="#events-event-DOMElementNameChanged">DOMElementNameChanged</a>
</dt>
<dd>
@@ -4338,9 +4240,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-DOMAttributeNameChanged"
- id="events-event-DOMAttributeNameChanged"/>
+ <dt id="events-event-DOMAttributeNameChanged">
<a class="noxref" href="#events-event-DOMAttributeNameChanged">DOMAttributeNameChanged</a>
</dt>
<dd>
@@ -4381,15 +4281,12 @@
</div>
</div>
<!-- div3 Events-eventgroupings-mutationnameevents -->
- <div class="div3">
- <a name="events-Events-eventgroupings-basicevents"
- id="events-Events-eventgroupings-basicevents"/>
- <h3 id="events-Events-eventgroupings-basicevents-h3" class="div3">1.7.9 Basic event types</h3>
+ <div class="div3" id="events-Events-eventgroupings-basicevents">
+ <h3 class="div3">1.7.9 Basic event types</h3>
<p>This event module contains basic event types associated with document manipulation. It defines the feature BasicEvents 3.0 and depends on the feature Events 3.0. The basic event types are listed below.</p>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-load" id="events-event-load"> </a>
+ <dt id="events-event-load">
<a class="noxref" href="#events-event-load">load</a>
</dt>
<dd>
@@ -4430,8 +4327,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-unload" id="events-event-unload"> </a>
+ <dt id="events-event-unload">
<a class="noxref" href="#events-event-unload">unload</a>
</dt>
<dd>
@@ -4472,8 +4368,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-abort" id="events-event-abort"> </a>
+ <dt id="events-event-abort">
<a class="noxref" href="#events-event-abort">abort</a>
</dt>
<dd>
@@ -4514,8 +4409,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-error" id="events-event-error"> </a>
+ <dt id="events-event-error">
<a class="noxref" href="#events-event-error">error</a>
</dt>
<dd>
@@ -4556,8 +4450,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-select" id="events-event-select"> </a>
+ <dt id="events-event-select">
<a class="noxref" href="#events-event-select">select</a>
</dt>
<dd>
@@ -4598,8 +4491,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-change" id="events-event-change"> </a>
+ <dt id="events-event-change">
<a class="noxref" href="#events-event-change">change</a>
</dt>
<dd>
@@ -4640,8 +4532,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-submit" id="events-event-submit"> </a>
+ <dt id="events-event-submit">
<a class="noxref" href="#events-event-submit">submit</a>
</dt>
<dd>
@@ -4682,8 +4573,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-reset" id="events-event-reset"> </a>
+ <dt id="events-event-reset">
<a class="noxref" href="#events-event-reset">reset</a>
</dt>
<dd>
@@ -4724,8 +4614,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-resize" id="events-event-resize"> </a>
+ <dt id="events-event-resize">
<a class="noxref" href="#events-event-resize">resize</a>
</dt>
<dd>
@@ -4766,8 +4655,7 @@
</div>
<div class="event-definition assert must">
<dl>
- <dt>
- <a name="events-event-scroll" id="events-event-scroll"> </a>
+ <dt id="events-event-scroll">
<a class="noxref" href="#events-event-scroll">scroll</a>
</dt>
<dd>
@@ -4815,12 +4703,10 @@
<!-- div1 contributors -->
- <a id="glossary" name="glossary"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="glossary" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
- <div class="div1">
- <a name="glossary-glossary" id="glossary-glossary"> </a>
+ <div class="div1" id="glossary-glossary">
<h1 id="glossary-role-glossary" class="glossary">Glossary</h1>
<dl>
<dt><em>Editors</em>:</dt>
@@ -4830,6 +4716,8 @@
</dl>
<p class="first">Some of the following term definitions have been borrowed or modified from similar definitions in other W3C or standards documents. See the links within the definitions for more information.</p>
<dl id="glossary-list">
+ <dt id="glossary-dt-activation-behavior">activation behavior</dt>
+ <dd>The action taken when an <a href="#glossary-dt-event">event</a>, typically initiated by users through an input device, causes an element to fulfill a defined role. The role may be defined for that element by the host language, or by author-defined variables, or both. The role for any given element may be a generic action, or may be unique to that element. For example, the activation behavior of an HTML or SVG <code><a></code> element is to cause the user agent to traverse the link specified in the <code>href</code> attribute, with the further optional parameter of specifying the browsing context for the traversal (such as the current window or tab, a named window, or a new window); the activation behavior of an HTML <code><input></code> element with the <code>type</code> attribute value <code>submit</code> is to send the values of the form elements to an author-defined IRI by the author-defined HTTP method.</dd>
<dt id="glossary-dt-bubbling-phase">bubbling phase</dt>
<dd>The process by which an <a href="#glossary-dt-event">event</a> can be handled by one of the target ancestors after being handled by the <a href="#glossary-dt-target-node">target node</a>.</dd>
<dt id="glossary-dt-capture-phase">capture phase</dt>
@@ -4844,11 +4732,13 @@
<dd>An event is the representation of some asynchronous occurrence (such as a mouse click on the presentation of the element, or the removal of child node from an element, or any of unthinkably many other possibilities) that gets associated with an <a href="#glossary-dt-event-target">event target</a>.</dd>
<dt id="glossary-dt-event-target">event target</dt>
<dd>The object to which an <a href="#glossary-dt-event">event</a> is targeted.</dd>
+ <dt id="glossary-dt-host-language">host language</dt>
+ <dd>Any language which integrates the features of another language, while normatively referencing the origin language rather than redefining those features, and extending those features only in ways defined by the origin language. An origin language typically is only intended to be implemented in the context of one or more host languages, not as a standalone language. For example, XHTML, HTML, and SVG are host languages for DOM 3 Events, and they integrate and extend the objects and models defined in this specification.</dd>
+ <dt id="glossary-dt-ime">IME</dt>
+ <dt id="glossary-dt-input-method-editor">input method editor</dt>
+ <dd>An <em>input method editor</em> (IME), also known as a <em>front end processor</em>, is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup, often used in East Asian languages (e.g. Chinese, Japanese, Korean). An IME may also be used for dictionary-based word completion, such as on mobile devices. See <a href="#keyset-IME">Input Method Editors</a> in Appendix A for treatment of IMEs in this specification.</dd>
<dt id="glossary-dt-localname">local name</dt>
<dd>See local name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>].</dd>
- <dt id="glossary-dt-ime">IME</dt>
- <dt id="glossary-dt-input-method-editor">input method editor</dt>
- <dd>An <em>input method editor</em> (IME), also known as a <em>front end processor</em>, is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup, often used in East Asian languages (e.g. Chinese, Japanese, Korean). An IME may also be used for dictionary-based word completion, such as on mobile devices. See <a href="#keyset-IME">Input Method Editors</a> in Appendix A for treatment of IMEs in this specification.</dd>
<dt id="glossary-dt-namespaceURI">namespace URI</dt>
<dd>A <em>namespace URI</em> is a URI that identifies an XML namespace. This is called the namespace name in [<cite><a class="noxref informative" href="#references-Namespaces11">XML Namespaces 1.1</a></cite>]. See also sections 1.3.2 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#baseURIs-Considerations"> <em>DOM URIs</em></a>" and 1.3.3 "<a class="normative" href="http://www.w3.org/TR/DOM-Level-3-Core/core.html#Namespaces-Considerations"><em>XML Namespaces</em></a>" regarding URIs and namespace URIs handling and comparison in the DOM APIs.</dd>
<dt id="glossary-dt-phase">phase</dt>
@@ -4867,18 +4757,12 @@
</div>
<!-- div1 glossary -->
-
- <a id="keyset" name="keyset"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="keyset" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
-
-
-
<div class="div1">
- <a name="keyset-KeySet" id="keyset-KeySet"> </a>
- <h1 id="keyset-KeySet-h1" class="adiv1">Appendix A: Keyboard events and key identifiers</h1>
+ <h1 id="keyset-KeySet" class="adiv1">Appendix A: Keyboard events and key identifiers</h1>
<dl>
<dt><em>Editors</em>:</dt>
<dd>Doug Schepers, W3C</dd>
@@ -4921,8 +4805,7 @@
</ul>
<p><strong>Note:</strong> This section uses serbian and kanji characters which are not always available (or are misrepresented) in the alternative versions or printed versions of this specification.</p>
<div class="div2">
- <a name="keyset-KeySet-intro" id="keyset-KeySet-intro"> </a>
- <h2 id="keyset-KeySet-intro-h2" class="adiv2">A.1 Introduction</h2>
+ <h2 id="keyset-KeySet-intro" class="adiv2">A.1 Introduction</h2>
<p class="first">Each keyboard event references a key using a <code>DOMString</code> key identifier. The set contained in this appendix is based on the sets of keycodes from:</p>
<ul>
<li>the interface <code>java.awt.event.KeyEvent</code> of the Java 2 Platform v1.4 [<cite><a class="noxref informative" href="#references-KeyEvent">KeyEvent for Java</a></cite>];</li>
@@ -4934,7 +4817,6 @@
<p>There are several use cases for keyboard events. The first use case is to retrieve the value of the key itself, in whichever mode that key currently represents (i.e. the value of a key as an upper- or lower-case letter, or a symbol or number, depending upon the current modifier keys, or as a key name); this may be used for monitoring particular input strings, or for modifier key input, or for author-generated virtual keyboards, and does not not depend upon the location of the key in the physical layout of the device, which may be mapped to different configurations based on user or system preference. The second use case is for keyboard shortcuts, where the string itself may be of secondary importance, and where they key used should default to the most appropriate key for the function, language, operating system, device, and other environmental factors (such as <code>ctrl+c</code> for copy operations). The final use case is completely independent of the value of the key identifier, and relies solely on the physical layout of the input device itself (such as for game controls); this is highly variable device-dependent functionality, and is not within the scope of this specification. Implementations should provide an option for users to establish their own preferential mapping for keyboard layout, and may rely upon ISO 9995-3, which defines a common layout for primary and secondary key mappings on a typical alphanumeric keyboard, or on ISO 9995-8, which defines a numeric keypad layout and secondary assignment of Unicode characters in the range <abbr title="a-z">U+0061..U+007A</abbr> to the number keys <code>2</code> through <code>9</code>.</p>
<!--
-
<p>There are several primary use cases for Key Identifiers, roughly divided into cases for output and input. For output,
<Travis> Use case: simulate a keyboard on a webpage.
@@ -4986,6 +4868,7 @@
... Does not care about location, just the end value
</p>
-->
+
<p>While implementations are recommended to use the most relevant identifier for a key independently of the platform or keyboard layout mappings, DOM applications should not make assumption on the ability of keyboard devices to generate them. When using keyboard events, <cite>"consider using numbers and function keys (F4, F5, and so on) instead of letters in shortcut-key combinations"</cite> ([<cite><a class="noxref informative" href="#references-DWW95">DWW95</a></cite>]) given that most keyboard layouts will provide keys for those.</p>
<p><code>"U+0000"</code>, <code>"U+0001"</code>, ..., <code>"U+10FFFF"</code> are Unicode based key identifiers ([<cite><a class="noxref normative" href="#references-Unicode">Unicode</a></cite>]). When a key cannot be mapped to Unicode, a specific identifier is used (see also <a href="#keyset-Guide">Guidelines for defining key identifiers</a>). In any case, no assumption should be made between the sequence of keyboard events and the text events. The following three examples illustrate the concept of keyboard layout mappings and its relation with keyboard events (following the <a href="#keyset-Guide">Guidelines for defining key identifiers</a>, the 'Q' key is mapped to the Latin Capital Letter Q key).</p>
<p>The keystroke <code>"U+0051"</code> (Latin Capital Letter Q key) will produce (on a PC/AT US keyboard using a US keyboard layout mapping and without any modifier activated) the Unicode character <code>q</code> (Latin Small Letter Q):</p>
@@ -5008,8 +4891,7 @@
</ol>
<p><strong>Note:</strong> The order between the text event and keyboard events may differ depending on the keyboard devices.</p>
<div class="div3">
- <a name="keyset-Modifiers" id="keyset-Modifiers"> </a>
- <h3 id="keyset-Modifiers-h3" class="adiv3">A.1.1 Modifier keys</h3>
+ <h3 id="keyset-Modifiers" class="adiv3">A.1.1 Modifier keys</h3>
<p>Keyboard input uses modifier keys to change the normal behavior of a key. Keys associated with modifiers generate, like other keys, <a href="#events-event-keydown">keydown</a> and <a href="#events-event-keyup">keyup</a> events as shown in the example below. Some modifiers are activated while the key is being pressed down or maintained pressed such as <code>"Alt"</code>, <code>"Control"</code>, <code>"Shift"</code>, <code>"AltGraph"</code>, or <code>"Meta"</code>. Others modifiers are activated depending on their state such as <code>"CapsLock"</code>, <code>"NumLock"</code>, or <code>"Scroll"</code>. Change in the state happens when the modifier key is being pressed down. The <a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a> interface provides convenient attributes for some common modifiers keys: <a href="#events-Events-KeyboardEvent-ctrlKey"><code>KeyboardEvent.ctrlKey</code></a>, <a href="#events-Events-KeyboardEvent-shiftKey"><code>KeyboardEvent.shiftKey</code></a>, <a href="#events-Events-KeyboardEvent-altKey"><code>KeyboardEvent.altKey</code></a>, <a href="#events-Events-KeyboardEvent-metaKey"><code>KeyboardEvent.metaKey</code></a>. Some operating systems simulate the <code>"AltGraph"</code> modifier key with the combination of the <code>"Alt</code> and <code>"Control"</code> modifier keys. Implementations are encouraged to use the <code>"AltGraph"</code> modifier key.</p>
<p>The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
<ol>
@@ -5029,8 +4911,7 @@
</div>
<!-- div3 Modifiers -->
<div class="div3">
- <a name="keyset-DeadKeys" id="keyset-DeadKeys"> </a>
- <h3 id="keyset-DeadKeys-h3" class="adiv3">A.1.2 Dead keys</h3>
+ <h3 id="keyset-DeadKeys" class="adiv3">A.1.2 Dead keys</h3>
<p>Keyboard input uses dead keys for the input of composed character sequences. Unlike the handwriting sequence, in which users enter the base character first, keyboard input requires to enter a special state when a dead key is pressed and emit the character(s) only when one of a limited number of "legal" base character is entered.</p>
<p>The dead keys are represented in the key identifiers set using combining diacritical marks. The sequence of keystrokes "U+0302" (Combining Circumflex Accent key) and "U+0045" (Latin Capital Letter E key) will likely produce (on a PC/AT french keyboard using a french mapping and without any modifier activated) the Unicode character ê (Latin Small Letter E With Circumflex), as preferred by the Unicode Normalization Form <em>NFC</em>:</p>
<ol>
@@ -5043,10 +4924,9 @@
</div>
<!-- div3 DeadKeys -->
<div class="div3">
- <a name="keyset-IME" id="keyset-IME"> </a>
- <h3 id="keyset-IME-h3" class="adiv3">A.1.3 Input Method Editors</h3>
+ <h3 id="keyset-IME" class="adiv3">A.1.3 Input Method Editors</h3>
<!-- Moved to glossary
- <p><a name="keyset-dt-ime" id="keyset-dt-ime"/> Also known as <em>front end processor</em>, an <em>input method editor</em> (IME) is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup.</p>-->
+ <p id="keyset-dt-ime"> Also known as <em>front end processor</em>, an <em>input method editor</em> (IME) is an application that performs the conversion between keystrokes and ideographs or other characters, usually by user-guided dictionary lookup.</p>-->
<p>This specification does not provide a representation of the <a href="#glossary-dt-ime">input method editor (IME)</a> events, i.e. the IME's functions and the IME context are not represented in this set. As an example, receiving a <a href="#events-event-keydown">keydown</a> for the "Accept" key identifier does not necessarily imply that the text currently selected in the IME is being accepted. It only indicates that a keystroke happened, disconnected from the IME Accept functionality. Depending on the device in use, the IME Accept functionality can be obtain using the Accept key or the Return key. Keyboard events cannot be used to determine the current state of the input method editor.</p>
<p>Keyboard events correspond to the events generated by the input device after the keyboard layout mapping but before the processing of the input method editor.</p>
<p>The following example describes a possible sequence of keys to generate the Unicode character 市 (Kanji character, part of CJK Unified Ideographs) using Japanese input methods. This example assumes that the input method editor is activated and in the Japanese-Romaji input mode. The keys <code>"Convert"</code> and <code>"Accept"</code> may be replaced by others depending on the input device in use and the configuration of the IME, e.g. it could be respectively "U+0020" (Space key) and "Enter".</p>
@@ -5064,8 +4944,7 @@
</div>
<!-- div3 IME -->
<div class="div3">
- <a name="keyset-cancelable_keys" id="keyset-cancelable_keys"> </a>
- <h3 id="keyset-cancelable_keys-h3" class="adiv3">A.1.4 Default actions and cancelable keyboard events</h3>
+ <h3 id="keyset-cancelable_keys" class="adiv3">A.1.4 Default actions and cancelable keyboard events</h3>
<p>Canceling the default action of a <a href="#events-event-keydown">keydown</a> event does not affect its respective <a href="#events-event-keyup">keyup</a> event; it will however prevent the respective <a href="#events-event-textInput">textInput</a> event from being generated. The following example describes a possible sequence of keys to generate the Unicode character Q (Latin Capital Letter Q) on a PC/AT US keyboard using a US mapping:</p>
<ol>
<li><code>"keydown"</code>: <code>"U+0051"</code> (Latin Capital Letter Q key), shiftKey<br/>
@@ -5094,8 +4973,7 @@
</div>
<!-- div3 cancelable_keys -->
<div class="div3">
- <a name="keyset-Guide" id="keyset-Guide"> </a>
- <h3 id="keyset-Guide-h3" class="adiv3">A.1.5 Guidelines for defining key identifiers</h3>
+ <h3 id="keyset-Guide" class="adiv3">A.1.5 Guidelines for defining key identifiers</h3>
<div class="atrisk">
<p class="issue">This section is the original guideline. We are considering making a more detailed, normative guideline, below.</p>
<p><strong>Note:</strong> This section is non-normative.</p>
@@ -5250,8 +5128,7 @@
</div>
<!-- div2 KeySet-intro -->
<div class="div2">
- <a name="keyset-KeySet-Set" id="keyset-KeySet-Set"> </a>
- <h2 id="keyset-KeySet-Set-h2" class="adiv2">A.2 Key identifiers set</h2>
+ <h2 id="keyset-KeySet-Set" class="adiv2">A.2 Key identifiers set</h2>
<p><strong>Note:</strong> The keycodes <code>Multiply</code>, <code>Add</code>, <code>Substract</code>, <code>Decimal</code>, <code>Separator</code>, <code>Divide</code>, <code>NumPad0</code>, <code>NumPad1</code>, <code>NumPad2</code>, <code>NumPad3</code>, <code>NumPad4</code>, <code>NumPad5</code>, <code>NumPad6</code>, <code>NumPad7</code>, <code>NumPad8</code>, and <code>NumPad9</code> are not part of this set. Use <a href="#events-Events-KeyboardEvent-keylocation"><code>KeyboardEvent.keyLocation</code></a> to know if a key originated from the numeric keypad.</p>
<dl>
<dt><a name="keyset-key-Accept" id="keyset-key-Accept">"Accept"</a></dt>
@@ -5794,8 +5671,7 @@
<div>
- <a name="keyset-KeySet-Set-keyCode-charCode" id="keyset-KeySet-Set-keyCode-charCode"> </a>
- <h2 id="keyset-KeySet-Set-keyCode-charCode-h2" class="adiv2">A.2.1 Key identifiers, keyCode, and charCode</h2>
+ <h2 id="keyset-KeySet-Set-keyCode-charCode" class="adiv2">A.2.1 Key identifiers, keyCode, and charCode</h2>
<p><strong>Note:</strong> This section is non-normative.</p>
<p>Browser support for keyboards has traditionally relied on two ad-hoc attributes, <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>. The values for these attributes, and the availability of the attribute, is inconsistent across platforms, keyboard languages and layouts, User Agents, versions, and even event types. A significant amount of legacy content, including script libraries, relies upon detecting the User Agent and acting accordingly, and any changes to <code class="attr-name">keyCode</code>, or <code class="attr-name">charCode</code> risk breaking as much content as they fix or enable. Additionally, these attributes are not suitable for international usage, or accessibility concerns. Therefore, this specification does not normatively define the <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code> attributes, relying instead only on the more robust key identifiers, which can be used safely and consistently in any User Agent which conforms to this specification. However, for the purpose of documenting the current state of these attributes and their relation to equivalent key identifiers, this specification contains the following table, which is to be used as an informative reference only, and does not document the full range of values for <code class="attr-name">keyCode</code>, and <code class="attr-name">charCode</code>.</p>
@@ -6040,13 +5916,11 @@
</div>
</div>
<!-- div1 KeySet -->
- <a id="changes" name="changes"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="changes" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="changes-Changes" id="changes-Changes"> </a>
- <h1 id="changes-Changes-h1" class="adiv1">Appendix B: Changes</h1>
+ <h1 id="changes-Changes" class="adiv1">Appendix B: Changes</h1>
<dl>
<dt><em>Editors</em>:</dt>
<dd>Doug Schepers, W3C</dd>
@@ -6054,28 +5928,23 @@
<dd>Philippe Le Hégaret, W3C (until November 2003)</dd>
</dl>
<div class="div2">
- <a name="changes-DOMEvents2to3Changes" id="changes-DOMEvents2to3Changes"> </a>
- <h2 id="changes-DOMEvents2to3Changes-h2" class="adiv2">B.1 Changes between DOM Level 2 Events and DOM Level 3 Events</h2>
+ <h2 id="changes-DOMEvents2to3Changes" class="adiv2">B.1 Changes between DOM Level 2 Events and DOM Level 3 Events</h2>
<p>Numerous clarifications to the interfaces and event types have been made. The <code>HTMLEvents</code> module is no longer defined in this document. The event types <code>focus</code> and <code>blur</code> have been added to the <a href="#events-Events-UIEvent"><code>UIEvents</code></a> module, the event type <code>dblclick</code> has been added to the <a href="#events-Events-MouseEvent"><code>MouseEvents</code></a> module. This new specification provides a better separation between the DOM event flow, the event types, and the DOM interfaces.</p>
<div class="div3">
- <a name="changes-DOMEvents2to3Changes-flow" id="changes-DOMEvents2to3Changes-flow"> </a>
- <h3 id="changes-DOMEvents2to3Changes-flow-h3" class="adiv3">B.1.1 Changes to DOM Level 2 event flow</h3>
+ <h3 id="changes-DOMEvents2to3Changes-flow" class="adiv3">B.1.1 Changes to DOM Level 2 event flow</h3>
<p>This new specification introduced one new concept in the event flow:</p>
<ul>
<li>ordering of event listeners: event listeners are now ordered while ordering was unspecified in DOM Level 2 Events.</li>
</ul>
</div>
<!-- div3 DOMEvents2to3Changes-flow -->
- <div class="div3">
- <a name="changes-DOMEvents2to3Changes-event-types"
- id="changes-DOMEvents2to3Changes-event-types"/>
- <h3 id="changes-DOMEvents2to3Changes-event-types-h3" class="adiv3">B.1.2 Changes to DOM Level 2 event types</h3>
+ <div class="div3" id="changes-DOMEvents2to3Changes-event-types">
+ <h3 class="adiv3">B.1.2 Changes to DOM Level 2 event types</h3>
<p>Lots of clarifications have been made on the event types. The conformance is now explicitly defined against the event types, and not only in terms of interfaces required by the event types. Support for namespaces and the features <code>"BasicEvents"</code>, <code>"TextEvents"</code>, <code>"KeyboardEvents"</code>, and <code>"MutationNameEvents"</code> have been introduced.</p>
</div>
<!-- div3 DOMEvents2to3Changes-event-types -->
<div class="div3">
- <a name="changes-DOMLevel2to3Changes" id="changes-DOMLevel2to3Changes"> </a>
- <h3 id="changes-DOMLevel2to3Changes-h3" class="adiv3">B.1.3 Changes to DOM Level 2 Events interfaces</h3>
+ <h3 id="changes-DOMLevel2to3Changes" class="adiv3">B.1.3 Changes to DOM Level 2 Events interfaces</h3>
<dl>
<dt>Interface <a href="#events-Events-Event"><code>Event</code></a></dt>
<dd>The <a href="#events-Events-Event"><code>Event</code></a> interface has two new attributes <a href="#events-Events-Event-namespaceURI"><code>Event.namespaceURI</code></a> and <a href="#events-Events-Event-defaultPrevented"><code>Event.defaultPrevented</code></a>, and two new methods: <a href="#events-Events-Event-stopImmediatePropagation"><code>Event.stopImmediatePropagation()</code></a>, <a href="#events-Events-Event-initEventNS"><code>Event.initEventNS()</code></a>.<br/>
@@ -6097,8 +5966,7 @@
</div>
<!-- div3 DOMLevel2to3Changes -->
<div class="div3">
- <a name="changes-DOMLevel3Addons" id="changes-DOMLevel3Addons"> </a>
- <h3 id="changes-DOMLevel3Addons-h3" class="adiv3">B.1.4 New Interfaces</h3>
+ <h3 id="changes-DOMLevel3Addons" class="adiv3">B.1.4 New Interfaces</h3>
<p>The interfaces <a href="#events-Events-CustomEvent"><code>CustomEvent</code></a>, <a href="#events-Events-TextEvent"><code>TextEvent</code></a>, <a href="#events-Events-KeyboardEvent"><code>KeyboardEvent</code></a>, <a href="#events-Events-MutationNameEvent"><code>MutationNameEvent</code></a>, <a href="#events-Events-WheelEvent"><code>WheelEvent</code></a>, and <a href="#events-Events-MouseWheelEvent"><code>MouseWheelEvent</code></a> were added to the Events module.</p>
</div>
<!-- div3 DOMLevel3Addons -->
@@ -6106,13 +5974,11 @@
<!-- div2 DOMEvents2to3Changes -->
</div>
<!-- div1 Changes -->
- <a id="security-considerations" name="security-considerations"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="security-considerations" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="security-considerations-Security" id="security-considerations-Security"> </a>
- <h1 id="security-considerations-Security-h1" class="adiv1">Appendix C: Security Considerations</h1>
+ <h1 id="security-considerations-Security" class="adiv1">Appendix C: Security Considerations</h1>
<dl>
<dt><em>Editor</em>:</dt>
<dd>Doug Schepers, W3C</dd>
@@ -6125,13 +5991,11 @@
<p>The <a href="#events-Events-DocumentEvent-canDispatch"><code>DocumentEvent.canDispatch()</code></a> method allows DOM applications to retrieve information about which event types the implementation supports, including event types not defined in this specification. Which event types a DOM Level 3 Events implementation supports can depend on configuration settings or on additional software modules available to the implementation.</p>
</div>
<!-- div1 Security -->
- <a id="idl-definitions" name="idl-definitions"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="idl-definitions" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="idl-definitions-idl" id="idl-definitions-idl"> </a>
- <h1 id="idl-definitions-idl-h1" class="adiv1">Appendix D: IDL Definitions</h1>
+ <h1 id="idl-definitions-idl" class="adiv1">Appendix D: IDL Definitions</h1>
<p class="first">This appendix contains the complete OMG IDL [<cite><a class="noxref normative" href="#references-OMGIDL">OMG IDL</a></cite>] for the Level 3 Document Object Model Events definitions.</p>
<p>The IDL files are also available as: <a class="normative" href="idl.zip">http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071207/idl.zip</a></p>
<h3 id="idl-definitions-idl-events.idl"><a href="idl/events.idl">events.idl</a>:</h3>
@@ -6463,13 +6327,11 @@
</div>
</div>
<!-- div1 idl -->
- <a id="java-binding" name="java-binding"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="java-binding" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="java-binding-java-binding" id="java-binding-java-binding"> </a>
- <h1 id="java-binding-java-binding-h1" class="adiv1">Appendix E: Java Language Binding</h1>
+ <h1 id="java-binding-java-binding" class="adiv1">Appendix E: Java Language Binding</h1>
<p class="first">This appendix contains the complete Java [<cite><a class="noxref normative" href="#references-Java">Java</a></cite>] bindings for the Level 3 Document Object Model Events.</p>
<p>The Java files are also available as <a class="normative" href="java-binding.zip">http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071207/java-binding.zip</a></p>
<h3 id="java-binding-org.w3c.dom.events.EventException">org\w3c\dom\events\EventException.java:</h3>
@@ -6918,13 +6780,11 @@
</div>
</div>
<!-- div1 java-binding -->
- <a id="ecma-script-binding" name="ecma-script-binding"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="ecma-script-binding" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="ecma-script-binding-ecma-binding" id="ecma-script-binding-ecma-binding"> </a>
- <h1 id="ecma-script-binding-ecma-binding-h1" class="adiv1">Appendix F: ECMAScript Language Binding</h1>
+ <h1 id="ecma-script-binding-ecma-binding" class="adiv1">Appendix F: ECMAScript Language Binding</h1>
<p class="first">This appendix contains the complete ECMAScript [<cite><a class="noxref normative" href="#references-ECMAScript">ECMAScript</a></cite>] binding for the Level 3 Document Object Model Events definitions.</p>
<div class="ecma-block">
<dl>
@@ -7631,13 +7491,11 @@
<!-- ecma-block -->
</div>
<!-- div1 ecma-binding -->
- <a id="acknowledgements" name="acknowledgements"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="acknowledgements" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
<div class="div1">
- <a name="acknowledgements-contributors" id="acknowledgements-contributors"> </a>
- <h1 id="acknowledgements-contributors-h1" class="adiv1">Appendix G: Acknowledgements</h1>
+ <h1 id="acknowledgements-contributors" class="adiv1">Appendix G: Acknowledgements</h1>
<p class="first">Many people contributed to the DOM specifications (Level 1, 2 or 3), including participants of the DOM Working Group and the DOM Interest Group. We especially thank the following:</p>
<p>Andrew Watson (Object Management Group), Andy Heninger (IBM), Angel Diaz (IBM), Arnaud Le Hors (W3C and IBM), Ashok Malhotra (IBM and Microsoft), Ben Chang (Oracle), Bill Smith (Sun), Bill Shea (Merrill Lynch), Bob Sutor (IBM), Chris Lovett (Microsoft), Chris Wilson (Microsoft), David Brownell (Sun), David Ezell (Hewlett-Packard Company), David Singer (IBM), Dimitris Dimitriadis (Improve AB and invited expert), Don Park (invited), Elena Litani (IBM), Eric Vasilik (Microsoft), Gavin Nicol (INSO), Ian Jacobs (W3C), James Clark (invited), James Davidson (Sun), Jared Sorensen (Novell), Jeroen van Rotterdam (X-Hive Corporation), Joe Kesselman (IBM), Joe Lapp (webMethods), Joe Marini (Macromedia), Johnny Stenback (Netscape/AOL), Jon Ferraiolo (Adobe), Jonathan Marsh (Microsoft), Jonathan Robie (Texcel Research and Software AG), Kim Adamson-Sharpe (SoftQuad Software Inc.), Lauren Wood (SoftQuad Software Inc., <em>former Chair</em>), Laurence Cable (Sun), Mark Davis (IBM), Mark Scardina (Oracle), Martin Dürst (W3C), Mary Brady (NIST), Mick Goulish (Software AG), Mike Champion (Arbortext and Software AG), Miles Sabin (Cromwell Media), Patti Lutsky (Arbortext), Paul Grosso (Arbortext), Peter Sharpe (SoftQuad Software Inc.), Phil Karlton (Netscape), Philippe Le Hégaret (W3C, <em>W3C Team Contact and former Chair</em>), Ramesh Lekshmynarayanan (Merrill Lynch), Ray Whitmer (iMall, Excite@Home, and Netscape/AOL, <em>Chair</em>), Rezaur Rahman (Intel), Rich Rollman (Microsoft), Rick Gessner (Netscape), Rick Jelliffe (invited), Rob Relyea (Microsoft), Scott Isaacs (Microsoft), Sharon Adler (INSO), Steve Byrne (JavaSoft), Tim Bray (invited), Tim Yu (Oracle), Tom Pixley (Netscape/AOL), Vidur Apparao (Netscape), Vinod Anupam (Lucent).</p>
<p>After publication of this document as Working Group Note in November 2003, the participants of the WebAPI Working Group resumed development of this document:</p>
@@ -7646,8 +7504,7 @@
<p>Many thanks to Brad Pettit, Dylan Schiemann, David Flanagan, Steven Pemberton, Curt Arnold, Al Gilman, Misha Wolf, Sigurd Lerstad, Michael B. Allen, Alexander J. Vincent, Martin Dürst, Ken Rehor, and, Cameron McCormack, for their review and comments of this document.</p>
<p>Special thanks to the <a class="normative" href="http://www.w3.org/DOM/Test">DOM Conformance Test Suites</a> contributors: Fred Drake, Mary Brady (NIST), Rick Rivello (NIST), Robert Clary (Netscape), Neil Delima (IBM), with a special mention to Curt Arnold.</p>
<div class="div2">
- <a name="acknowledgements-Productions" id="acknowledgements-Productions"> </a>
- <h2 id="acknowledgements-Productions-h2" class="adiv2">G.1 Production Systems</h2>
+ <h2 id="acknowledgements-Productions" class="adiv2">G.1 Production Systems</h2>
<p>This specification was written in XML. The HTML, OMG IDL, Java and ECMAScript bindings were all produced automatically.</p>
<p>Thanks to Joe English, author of <a class="normative" href="http://www.flightlab.com/cost">cost</a>, which was used as the basis for producing DOM Level 1. Thanks also to Gavin Nicol, who wrote the scripts which run on top of cost. Arnaud Le Hors and Philippe Le Hégaret maintained the scripts.</p>
<p>After DOM Level 1, we used <a class="normative" href="http://xml.apache.org/xerces-j">Xerces</a> as the basis DOM implementation and wish to thank the authors. Philippe Le Hégaret and Arnaud Le Hors wrote the <a class="normative" href="http://dev.w3.org/cvsweb/java/classes/org/w3c/tools/specgenerator/">Java programs</a> which are the DOM application.</p>
@@ -7657,17 +7514,14 @@
</div>
- <a id="references" name="references"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="references" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
- <div class="div1">
- <a name="references-References" id="references-References"> </a>
+ <div class="div1" id="references-References">
<h1 id="references-role-references" class="references">References</h1>
<p class="first">For the latest version of any W3C specification please consult the list of <a class="normative" href="http://www.w3.org/TR">W3C Technical Reports</a> available at http://www.w3.org/TR.</p>
- <div class="div2">
- <a name="references-References-Normative" id="references-References-Normative"> </a>
- <h2 id="references-References-Normative-h2" class="adiv2">I.1 Normative References</h2>
+ <div class="div2" id="references-References-Normative">
+ <h2 class="adiv2">I.1 Normative References</h2>
<dl>
<dt>
<strong>[<a name="references-DOM2Core" id="references-DOM2Core">DOM Level 2 Core</a>]</strong>
@@ -7709,8 +7563,7 @@
</div>
<!-- div2 References-Normative -->
<div class="div2">
- <a name="references-References-Informative" id="references-References-Informative"> </a>
- <h2 id="references-References-Informative-h2" class="adiv2">I.2 Informative References</h2>
+ <h2 id="references-References-Informative" class="adiv2">I.2 Informative References</h2>
<dl>
<dt>
<strong>[<a name="references-DOMLS" id="references-DOMLS">DOM Level 3 Load and Save</a>]</strong>
@@ -7745,12 +7598,10 @@
<!-- div2 References-Informative -->
</div>
<!-- div1 References -->
- <a id="def-index" name="def-index"> </a>
- <div class="noprint" style="text-align: right">
+ <div id="def-index" class="noprint" style="text-align: right">
<p style="font-family: monospace;font-size:small">January 2008</p>
</div>
- <div class="div1">
- <a name="def-index-Index" id="def-index-Index"> </a>
+ <div class="div1" id="def-index-Index">
<h1 id="def-index-role-index" class="index">Index</h1>
<table summary="the table contains all keywords used in this document">
<tr>