我想在用户编辑带有contenteditable
属性的div
的内容时运行一个函数.onchange
事件的类似功能是什么?
我使用jQuery,所以任何使用jQuery的解决方案都是首选.谢谢
我想在用户编辑带有contenteditable
属性的div
的内容时运行一个函数.onchange
事件的类似功能是什么?
我使用jQuery,所以任何使用jQuery的解决方案都是首选.谢谢
我建议将监听器附加到可编辑元素触发的关键事件,不过您需要知道,在内容本身更改之前,会触发keydown
和keypress
个事件.这并不能涵盖更改内容的所有可能方法:用户还可以使用编辑或上下文浏览器菜单中的剪切、复制和粘贴,因此您可能还需要处理cut
copy
和paste
事件.此外,用户可以删除文本或其他内容,因此那里有更多的事件(例如mouseup
).您可能希望轮询元素的内容作为备用.
UPDATE 29 October 2014个
从长远来看,HTML5 input
event才是答案.在 compose 本文时,当前Mozilla(来自Firefox14)和WebKit/Blink浏览器中的contenteditable
个元素都支持它,但IE不支持.
Demo:
document.getElementById("editor").addEventListener("input", function() {
console.log("input event fired");
}, false);
<div contenteditable="true" id="editor">Please type something in here</div>