假设我有一些像这样的HTML代码:
<body contentEditable="true">
<h1>Some heading text here</h1>
<p>Some text here</p>
</body>
Run Code Online (Sandbox Code Playgroud)
现在,插入符号(闪烁的光标)在H1元素内部闪烁,让我们在单词"heading"中说.如何使用JavaScript获取插入符号元素的名称?在这里,我想得到"h1".
这只需要在WebKit中工作(它嵌入在应用程序中).它最好也适用于选择.
我已经尝试了几个HTML编辑器,包括TinyMCE,CKEditor和现在的NicEdit.NicEdit在一个方面很好 - 它很容易定制.但是,我发现它们都有产生非常差的HTML的倾向.不一定是这样,但是因为他们没有做很多工作来正确解释无效的用户操作,例如在没有先做出选择的情况下尝试设置某些内容.
最终使用包含类似内容的HTML非常容易
<span style='color:#ff0000'><span style='color:#ff0000'><span style='color:#ff0000'>Red</span></span></span>
Run Code Online (Sandbox Code Playgroud)
我是否正确地认为这几乎是内容可编辑概念的限制?如果目的是电子邮件或在诸如此类的论坛上发布帖子,那么糟糕的HTML并不重要,但如果生成的HTML必须在网页的上下文中使用,那么生活得相当不舒服.如果所有这些都是对的,那么替代方案是什么?也许是一个基于Flash的插件编辑器,可以生成更好的HTML并且更难以解释用户想要做什么?
我认为原则上可以研究生成的输出并在必要时清除六角形的跨度,但这可能是一项艰巨的任务.