请指教我一些关于如何在Java的DOM实现中注册和使用修改监听器的教程或其他解释示例。
在网络上,我只找到Javascript或Flex示例。
我的目标是了解Node
何时被修改。
我尝试了几种方法,没有任何作用。可能是Java的DOM不支持这个功能吗?
答案 0 :(得分:7)
知道了!
投射就是诀窍!
我一直在寻找org.w3.dom.events.EventTarget
的实现,但似乎只有内部类实现它。所以它只需要手工铸造(只需假设Node instanceof EventTarget
)。
org.w3c.dom.events.EventListener myModificationListener =
new org.w3c.dom.events.EventListener() {
@Override
public void handleEvent(Event e) {
if (e instanceof MutationEvent) {
MutationEvent me = (MutationEvent) e;
System.out.println("type: " + me.getType()
+ ", dest: " + me.getTarget());
}
}
};
Node someDomNode = ...
// here the unusual casting magic happens
((EventTarget) node).addEventListener(
"DOMSubtreeModified", // constant
myModificationListener, true);
// modify the node here by appending a child
// -> listener gets invoked