| <html id="HTML"> |
| <body id="Body"> |
| |
| <p>This tests the target, currentEvent, and phase of a complete trace through event bubbling and capture.</p> |
| <pre id="console"></pre> |
| |
| <br> |
| <div id="Parent" style="background-color:lightblue;border:1px solid #000000; padding: 10px; margin: 10px;"> |
| Parent |
| <div id="Self" style="background-color:blue; border:1px solid black; padding: 10px; margin: 10px;"> |
| Self |
| </div> |
| </div> |
| |
| <script> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| function log(msg) |
| { |
| document.getElementById('console').appendChild(document.createTextNode(msg + "\n")); |
| } |
| |
| function traceEvent(event) |
| { |
| function targetString(target) |
| { |
| if (!target) |
| return "No Target"; |
| if (target instanceof window.Element) |
| return target.toString() + " (ID: " + target.id + ")"; |
| return target.toString(); |
| } |
| |
| function phaseString(eventPhase) |
| { |
| if (eventPhase == Event.NONE) |
| return "NONE"; |
| else if (eventPhase == Event.CAPTURING_PHASE) |
| return "CAPTURE"; |
| else if (eventPhase == Event.BUBBLING_PHASE) |
| return "BUBBLE"; |
| else if (eventPhase == Event.AT_TARGET) |
| return "AT TARGET"; |
| } |
| |
| var target = targetString(event.target); |
| var currentTarget = targetString(event.currentTarget); |
| var phase = phaseString(event.eventPhase); |
| |
| log("Target = " + target + "; Phase = " + phase + "; CurrentTarget = " + currentTarget + ";"); |
| } |
| |
| |
| window.addEventListener("customevent", traceEvent, true); |
| document.addEventListener("customevent", traceEvent, true); |
| document.getElementById("HTML").addEventListener("customevent", traceEvent, true); |
| document.getElementById("Body").addEventListener("customevent", traceEvent, true); |
| document.getElementById("Parent").addEventListener("customevent", traceEvent, true); |
| document.getElementById("Self").addEventListener("customevent", traceEvent, true); |
| |
| window.addEventListener("customevent", traceEvent, false); |
| document.addEventListener("customevent", traceEvent, false); |
| document.getElementById("HTML").addEventListener("customevent", traceEvent, false); |
| document.getElementById("Body").addEventListener("customevent", traceEvent, false); |
| document.getElementById("Parent").addEventListener("customevent", traceEvent, false); |
| document.getElementById("Self").addEventListener("customevent", traceEvent, false); |
| |
| var theEvent = document.createEvent("Event"); |
| theEvent.initEvent("customevent", true, true); |
| |
| // Trace before dispatch. |
| traceEvent(theEvent); |
| |
| document.getElementById("Self").dispatchEvent(theEvent); |
| </script> |
| </body> |
| </html> |