Javascript文本编辑器的基本功能

Javascript文本编辑器的基本功能,javascript,jquery,contenteditable,Javascript,Jquery,Contenteditable,我正试图用Javascript编写自己的WYSWG文本编辑器,但我正在努力解决一个似乎相当基本的问题 给定contentEditable区域内的文本选择,例如此处管道“|”之间的内容: 一些|我想编辑或|选择的文本 我可以弄清楚我需要在这里做什么来移动结束span标记,以便我的选择包含在斜体span中。但是,我还需要考虑过多的其他情况,例如,如果我想删除跨距,在已经包含开始跨距或结束跨距的区域周围添加另一个跨距,考虑在我的选择周围打开/结束其他标记类型,等等 是否有任何地方存在为我提供此选择/替

我正试图用Javascript编写自己的WYSWG文本编辑器,但我正在努力解决一个似乎相当基本的问题

给定contentEditable区域内的文本选择,例如此处管道“|”之间的内容:

一些|我想编辑或|选择的文本

我可以弄清楚我需要在这里做什么来移动结束span标记,以便我的选择包含在斜体span中。但是,我还需要考虑过多的其他情况,例如,如果我想删除跨距,在已经包含开始跨距或结束跨距的区域周围添加另一个跨距,考虑在我的选择周围打开/结束其他标记类型,等等

是否有任何地方存在为我提供此选择/替换逻辑的库?还是我要求太多?我是否最好使用web上已有的众多编辑器之一


我真的不想使用最后一个选项,因为我发现的大多数选项都非常重,因为我只需要一些自定义编辑功能。

查看Rangy及其模块 http://code.google.com/p/rangy/#Modules


ContentEditable是一个讨厌的野兽,在浏览器之间有很多怪癖。兰吉试图解决这个问题,但仍然很难处理。我的项目有很多自定义规则,所以我们不得不使用像Rangy这样的低级库。结合jQuery,它的功能非常强大

你为什么要重新发明轮子?到目前为止你都有什么?@kennis:都是如何装的,你可以光着身子装,而不需要额外的东西@泽特·托埃。这是一个公平的观点。我想把这当作一种学习经验。另外,当我只需要tinyMCE提供的一些函数,而我想添加一些它不提供的函数时,tinyMCE真的是太庞大了。我想如果我能解决这个问题,不会有太多的困难。我将不得不更深入地研究它,但乍一看这正是我需要的!太好了,谢谢!