Javascript 简单html文本区域/内容可编辑文本编辑器组件支持链接、撤销、谷歌浏览器的tab in/outdent

Javascript 简单html文本区域/内容可编辑文本编辑器组件支持链接、撤销、谷歌浏览器的tab in/outdent,javascript,google-chrome,textarea,contenteditable,Javascript,Google Chrome,Textarea,Contenteditable,我正在编写一个chrome扩展,需要一个简单的文本编辑器组件,这样用户就可以编辑扩展中的简单注释 所需: 可点击链接,但没有任何形式的对话框。如果有的话,这就足够了。”http://..“子字符串可以转换为任何类型的实际可点击链接(即,样式类似链接的div和带有onclick处理程序的div都可以) 撤消/重做功能 制表符同时缩进/缩进一行或多行 在编辑/显示之间无缝切换,即无保存按钮或回流等() 除了缩进之外,不需要任何类型的格式化功能,只需要纯文本() 在chrome上工作的html/js

我正在编写一个chrome扩展,需要一个简单的文本编辑器组件,这样用户就可以编辑扩展中的简单注释

所需:

  • 可点击链接,但没有任何形式的对话框。如果有的话,这就足够了。”http://..“子字符串可以转换为任何类型的实际可点击链接(即,样式类似链接的div和带有onclick处理程序的div都可以)
  • 撤消/重做功能
  • 制表符同时缩进/缩进一行或多行
  • 在编辑/显示之间无缝切换,即无保存按钮或回流等()
  • 除了缩进之外,不需要任何类型的格式化功能,只需要纯文本()
  • 在chrome上工作的html/js
我已经看过/尝试过:

  • :撤消包含的和制表符缩进易于实现,但无法执行链接
  • :撤消断开,制表符缩进=地狱(选择和范围),但链接工作正常。还设置了空白:nowrap;显示缩进空格。这是我目前的解决方案,但它有很多问题,也许我不得不为此提出另一个问题
  • :我想是杀伤力太大了
  • :看起来不错,但由于它是一个文本区域,我认为没有链接是可能的
  • 字体看起来很有希望,值得一试吗?不过分吗
  • 演示在chrome上不起作用(讽刺的是)
非常感谢您的任何意见或回答


编辑:我在我的项目中使用了codemirror 1(Simplenote Chrome扩展的Syncpad),我对它非常满意。CodeMirror为文本编辑(esp实时解析)提供了很多额外的基础设施,我再也不想错过这些了。我有时间时会更新到codemirror 2,怎么样?我不认为它会做链接,但它的设计很好,你可以扩展它。

怎么样?我不认为它会做链接,但它的设计很好,您可以扩展它。

选择和范围有什么问题?尝试在光标位置的tab键上插入空格,部分工作正常,但有问题。contenteditable div真是个累赘:/codemirror更干净、更好——简直完美!在所有主流浏览器中都可以实现这一点,而不会出现问题。看到选项和范围有什么问题了吗?尝试在光标位置按tab键插入空格,部分工作正常,但出现问题。contenteditable div真是个累赘:/codemirror更干净、更好——简直完美!在所有主流浏览器中都可以实现这一点,而不会出现问题。See codemirror完全满足了我列出的需求,它已经集成到我的扩展中。非常感谢你!我通过编写一个简单的语法分析器使链接可以点击http://..“样式标记。然后,我将相应的css类(cursor:pointer;color:blue;)与一个jQuery live('click')事件连接起来,该事件在选项卡中启动url。我唯一缺少的,并且忘了将其作为需求列出的是文本包装。可悲的是,codemirror 2不支持它。我可能会切换到codemirror 1,它确实支持它。@Stephanhatinger:codemirror 2现在进行文本包装。codemirror完全满足我列出的要求,并且它已经集成到我的扩展中。非常感谢你!我通过编写一个简单的语法分析器使链接可以点击http://..“样式标记。然后,我将相应的css类(cursor:pointer;color:blue;)与一个jQuery live('click')事件连接起来,该事件在选项卡中启动url。我唯一缺少的,并且忘了将其作为需求列出的是文本包装。可悲的是,codemirror 2不支持它。我可能会切换到codemirror 1,它确实支持它。@Stephanhatinger:codemirror 2现在进行文本包装。