与contenteditable相关的用户事件

时间:2013-05-07 21:40:06

标签: javascript html5 javascript-events

我是Javascript& amp;的初学者HTML5

假设我的HTML5窗口中有一个可疑的<div> [块级]元素。

用户可以通过用户交互修改此元素(或某些子元素)触发的Javascript事件的详尽列表是什么?

我应该如何在Javascript中编码以拒绝某些用户操作?或更改DOM ...(即用一些<span>替换一些TextNode)

似乎input事件无法“撤消”或“拒绝”某些用户操作......

FWIW,此时我只关心最近的Firefox浏览器(我的Linux浏览器是21 beta 7)。

this is an answer相关问题。

换句话说,我没有清楚地了解如何在HTML5和HTML中设计富文本编辑器。的JavaScript。

PS我想要普通的Javascript,对它上面的任何库都不感兴趣。

附加物

也许mutation observers可能相关?

后续问题here ......

1 个答案:

答案 0 :(得分:2)

关于contenteditable元素的详尽事件列表与input type = text相同。查看所有事件的列表(特别注意表单事件):http://www.w3schools.com/tags/ref_eventattributes.asp

“我应该如何在Javascript中编写代码以拒绝某些用户操作?”...只需将“event.preventDefault()”放在事件侦听器的开头,以用于该操作的事件。拒绝按键的示例:

contenteditableElement.addEventListener('keypress', function (e) {
    e.preventDefault();
    // do something else, maybe...
});

撤消用户的操作:

document.execCommand('undo', false, '');

关于设计富文本编辑器,有许多好的演示可用。我建议: https://developer.mozilla.org/en-US/docs/Rich-Text_Editing_in_Mozilla http://www.quirksmode.org/dom/execCommand/ 确保查看最后一个链接的来源;特别是buttons.js文件。另请参阅MDN文章中的惊人命令列表。祝你好运 - 但​​尽量不要重新发明轮子。那里有许多经过良好测试的编辑;看看这个清单:http://www.webdesignerdepot.com/2008/12/20-excellent-free-rich-text-editors/