April 2021 Update
DOM mutation events such as DOMCharacterDataModified
are now deprecated, and MutationObserver
s should be used instead.
Original answer
Text nodes simply don't fire most events: historically, elements have had the responsibility for doing that in HTML DOMs. However, text nodes do fire some events (except in IE <= 8): DOM mutation events. A particularly useful one for text nodes is DOMCharacterDataModified
, which is used to detect change to a text node's text and can be useful in browser-based editors.
Example: http://www.jsfiddle.net/timdown/c6dHX/
HTML:
<div contenteditable="true" id="div">A text node, edit me</div>
JavaScript:
var textNode = document.getElementById("div").firstChild;
textNode.addEventListener("DOMCharacterDataModified", function(evt) {
alert("Text changed from '" + evt.prevValue + "' to '" + evt.newValue + "'");
}, false);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…