49 lines
1.4 KiB
HTML
49 lines
1.4 KiB
HTML
<p>This page verifies that queued event listeners keep firing even after a node has been removed from the document.</p>
|
|
<p>If the test passes, you'll see a PASS message below.</p>
|
|
|
|
<pre id="console"></pre>
|
|
|
|
<div id="div"></div>
|
|
|
|
<script>
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
function log(s)
|
|
{
|
|
document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
|
|
}
|
|
|
|
var result = [ ];
|
|
|
|
function reportResult(expected)
|
|
{
|
|
var passed = true;
|
|
var end = result.length > expected.length ? result.length : expected.length;
|
|
for (var i = 0; i < end; ++i) {
|
|
if (result[i] != expected[i]) {
|
|
log("FAIL: " + name + " result[" + i + "] should be " + expected[i] + " but instead is " + result[i] + ".");
|
|
passed = false;
|
|
}
|
|
}
|
|
if (passed)
|
|
log("PASS: result should be " + expected + " and is.");
|
|
}
|
|
|
|
var div = document.getElementById("div");
|
|
div.addEventListener("click", function f1() {
|
|
result.push(arguments.callee.name);
|
|
div.parentNode.removeChild(div);
|
|
}, false);
|
|
|
|
div.addEventListener("click", function f2() {
|
|
result.push(arguments.callee.name);
|
|
}, false);
|
|
|
|
var event = document.createEvent("MouseEvent");
|
|
event.initMouseEvent("click", true, true, document.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, document);
|
|
div.dispatchEvent(event);
|
|
|
|
reportResult([ "f1", "f2" ]);
|
|
</script>
|