聆听可信的HTML元素的事件

Moh*_*sen 15 html javascript html5 dom mutation-events

我试图弄清楚是否有任何方式来监听像属性focuschange具有contenteditable属性的HTML元素的事件.

我有这个HTML标记:

<p id="test" contenteditable >Hello World</p>
Run Code Online (Sandbox Code Playgroud)

我试过这些没有任何成功(JSBin):

var test = document.querySelector('#test');
test.addEventListener('change', function(){
  alert('content edited');
}, false);
test.addEventListener('DOMCharacterDataModified', function(){
  alert('content edited');
}, false);
test.addEventListener('focus', function(){
  alert('content edited');
}, false);
Run Code Online (Sandbox Code Playgroud)

我不想听键盘或鼠标事件.我没有找到任何明确的文件W3CMDN有关contenteditable.

是否可以在内容可编辑的HTML元素上收听change和/ focus或其他事件?

Tim*_*own 23

并不是的.元素没有change事件contenteditable,也没有HTML5 input事件,尽管我认为最终会出现.这是一种痛苦.


更新2012年6月23日

最近的WebKit支持元素input上的HTML5 事件contenteditable,Firefox 14也是如此.


focus然而,确实有效,就像DOMCharacterDataModified在大多数浏览器中一样(尽管特别是IE <9).见http://jsfiddle.net/UuYQH/112/

顺便说一下,contenteditable它不是布尔属性:它需要一个值,该值应该是"true","false","inherit"和空字符串(相当于"true")之一.