PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mitbekommen, wenn Element in DOM-Baum eingefügt


Julia und Christiane
2007-01-24, 13:26:04
Hallo,

kann man irgendwie mitbekommen, wenn ein Element in den DOM-Baum eingefügt wurde? Wir haben es so probiert (erstmal nur im FF):

function geladen()
{
alert("Knoten wurde eingefügt.");
}

function button1_click()
{
var newDiv = document.createElement("div");
newDiv.addEventListener("load", geladen, false);
document.body.appendChild(newDiv);
}

Das ganze soll im FF und im IE funktionieren. Habt ihr eine Idee?

Mit freundlichen Grüßen,

Julia und Christiane

Sephiroth
2007-01-24, 14:12:01
Load und unload funktioniert doch nur bei body! Was ihr such sind die sog. MutationEvents (http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents).

Die Typen DOMNodeInsertedIntoDocument, DOMNodeRemovedFromDocument, und DOMSubtreeModified scheinen aber auch (noch) nicht untertützt zu werden. Mit DOMNodeInserted bzw. DOMNodeRemoved auf das body-Element angewendet sollte es aber klappen.


Achja, der IE (auch 7) kann mit MutationEvents natürlich gar nichts anfangen. :rolleyes:
if (!document.implementation.hasFeature("MutationEvents", "2.0") && !window.MutationEvent)
{
alert("MutationEvents not supported!");
}
else
{
element.addEventListener("DOMNodeInserted", handleMutation, false);
}

p.s.
Bug 288392 - DOMSubtreeModified event does not fire at all (https://bugzilla.mozilla.org/show_bug.cgi?id=288392) (Firefox/Mozilla)