Javascript DOM contenteditable段落元素中的按键事件和偏移量

Javascript DOM contenteditable段落元素中的按键事件和偏移量,javascript,html,javascript-events,Javascript,Html,Javascript Events,这是关于contenteditable和富文本编辑的后续内容。我在最近的Firefox(Linux上的21 beta 7)中使用HTML5和Javascript 我想要一个内容可编辑的段落(或者稍后的块元素),其中用户输入的单词以两种不同的方式显示(可能是和),具体取决于它们是否已知。因此,如果用户键入了foo-john,并且foo是一个未知的单词,但john是一个已知的名称,那么这两个单词将以不同的方式呈现,可编辑的段落将包含 <p><span class='word'>

这是关于
contenteditable
和富文本编辑的后续内容。我在最近的Firefox(Linux上的21 beta 7)中使用HTML5和Javascript

我想要一个内容可编辑的
段落(或者稍后的
块元素),其中用户输入的单词以两种不同的方式显示(可能是
),具体取决于它们是否已知。因此,如果用户键入了
foo-john
,并且
foo
是一个未知的单词,但
john
是一个已知的名称,那么这两个单词将以不同的方式呈现,可编辑的段落将包含

<p><span class='word'>foo</span> <span class='name'>john</span></p>
富约翰

当我得到一个
按键
事件时,我知道它的
目标
元素。但是我怎么知道元素中的字符偏移量呢。换句话说,如果元素是包含
jon
的某个文本节点或span,如果插入符号在
jo
之后和
n
之前,如果我正在键入
h
字符,我如何获得偏移量2

当然,我有一个javascript
knownname
函数,如果它的参数(一些字符串)不是一个已知的名称,而是一个普通的单词,那么它返回
null
,如果它是已知的,则返回一些真值


顺便说一句,我想要纯Javascript。稍后,将生成该Javascript(我开始学习如何生成该生成器)。

查看和。:)@达格纳比特:谢谢!你有什么好的教程材料(最好是网站)建议我阅读吗?
contenteditable
段落是简单富文本编辑器的好方法,还是我应该使用
textarea
?那么,我怎样才能改变里面单个单词的风格或外观呢?就我所知,他是这方面的权威,你可能想看看他藏书的来源<代码>内容可编辑是一种方法,您不能为文本区域的各个部分设置样式。