mirror of
https://github.com/servo/servo.git
synced 2025-07-29 10:10:34 +01:00
49 lines
1.6 KiB
HTML
49 lines
1.6 KiB
HTML
<html>
|
|
<head>
|
|
<script src="harness.js"></script>
|
|
</head>
|
|
<body>
|
|
<span>Paragraph containing <div>event listener</div>.</span>
|
|
<script>
|
|
var bodyTimes = 0;
|
|
function bodyListener(ev) {
|
|
bodyTimes++;
|
|
is(ev.currentTarget, document.getElementsByTagName('body')[0]);
|
|
is(ev.target, document.getElementsByTagName('div')[0]);
|
|
if (bodyTimes == 1) {
|
|
is(ev.eventPhase, ev.CAPTURING_PHASE);
|
|
} else if (bodyTimes == 2) {
|
|
is(ev.eventPhase, ev.BUBBLING_PHASE);
|
|
}
|
|
}
|
|
|
|
var spanTimes = 0;
|
|
function spanListener(ev) {
|
|
is(ev.currentTarget, document.getElementsByTagName('span')[0]);
|
|
is(ev.target, document.getElementsByTagName('div')[0]);
|
|
is(ev.eventPhase, ev.BUBBLING_PHASE);
|
|
spanTimes++;
|
|
}
|
|
|
|
var divTimes = 0;
|
|
function divListener(ev) {
|
|
var self = document.getElementsByTagName('div')[0];
|
|
is(ev.currentTarget, self);
|
|
is(ev.target, self);
|
|
is(ev.eventPhase, ev.AT_TARGET);
|
|
divTimes++;
|
|
}
|
|
|
|
document.getElementsByTagName('body')[0].addEventListener("foopy", bodyListener, true);
|
|
document.getElementsByTagName('body')[0].addEventListener("foopy", bodyListener, false);
|
|
document.getElementsByTagName('span')[0].addEventListener("foopy", spanListener, false);
|
|
document.getElementsByTagName('div')[0].addEventListener("foopy", divListener, false);
|
|
var ev = new Event('foopy', {bubbles: true});
|
|
is(ev.bubbles, true);
|
|
document.getElementsByTagName('div')[0].dispatchEvent(ev);
|
|
is(bodyTimes, 2, 'body listener should be called multiple times');
|
|
is(divTimes, 1, 'target listener should be called once');
|
|
is(spanTimes, 1, 'span listener should be called while bubbling');
|
|
</script>
|
|
</body>
|
|
</html>
|