/** Test for Bug 288392 **/ var subtreeModifiedCount;
function subtreeModified(e)
{
++subtreeModifiedCount;
}
function doTest() { var targetNode = document.getElementById("mutationTarget");
targetNode.addEventListener("DOMSubtreeModified", subtreeModified);
subtreeModifiedCount = 0; var temp = document.createElement("DIV");
targetNode.appendChild(temp);
is(subtreeModifiedCount, 1, "Appending a child node should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
temp.setAttribute("foo", "bar");
is(subtreeModifiedCount, 1, "Setting an attribute should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
targetNode.removeChild(temp);
is(subtreeModifiedCount, 1, "Removing a child node should have dispatched a DOMSubtreeModified event");
// Testing events in a subtree, which is not in the document. var subtree = document.createElement("div"); var s = "Something1Something2";
subtree.innerHTML = s;
subtree.addEventListener("DOMSubtreeModified", subtreeModified);
subtreeModifiedCount = 0;
subtree.firstChild.firstChild.data = "foo";
is(subtreeModifiedCount, 1, "Editing character data should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
subtree.firstChild.removeChild(subtree.firstChild.firstChild);
is(subtreeModifiedCount, 1, "Removing a child node should have dispatched a DOMSubtreeModified event");
subtree.innerHTML = s;
subtreeModifiedCount = 0;
subtree.firstChild.firstChild.remove();
is(subtreeModifiedCount, 1, "Removing a child node should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
subtree.firstChild.setAttribute("foo", "bar");
is(subtreeModifiedCount, 1, "Setting an attribute should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
subtree.textContent = "foobar";
is(subtreeModifiedCount, 1, "Setting .textContent should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
subtree.innerHTML = s;
is(subtreeModifiedCount, 1, "Setting .innerHTML should have dispatched a DOMSubtreeModified event");
subtreeModifiedCount = 0;
subtree.removeEventListener("DOMSubtreeModified", subtreeModified);
subtree.appendChild(document.createTextNode(""));
subtree.addEventListener("DOMSubtreeModified", subtreeModified);
subtree.normalize();
is(subtreeModifiedCount, 1, "Calling normalize() should have dispatched a DOMSubtreeModified event");
SimpleTest.finish();
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.